SettleMint
Developer guidesFeeds

Read data

Query feed data: latest values, historical rounds, resolve feeds by subject and topic, list feeds with filtering, and check staleness.

Feed read endpoints return current values, historical rounds, directory resolution, configuration, and paginated feed lists. They help an integration find the feed for a subject and topic, inspect indexed metadata, and decide whether a value is fresh enough to use.

This page is reference material for developers who already have a feed address or (subject, topic) pair.

If you need to create or update feeds first, start with Create feeds or Submit updates.

Choose the read endpoint

GoalEndpoint
Read the current value from a known feed addressGET /system/feeds/{feedAddress}/latest
Read a historical round from a known feed addressGET /system/feeds/{feedAddress}/round/{roundId}
Find the registered feed for a subject and topicGET /system/feeds/resolve
Inspect the indexed feed record for a known feed addressGET /system/feeds/{feedAddress}
Read issuer-signed feed configurationGET /system/feeds/{feedAddress}/config
List registered feeds or factory-created feedsGET /system/feeds, GET /system/feeds/issuer-signed, GET /system/feeds/adapters
Check whether the latest value is stale for your thresholdGET /system/feeds/{feedAddress}/staleness

Latest value

Get the most recent round from a feed:

curl "$DALP_API_URL/system/feeds/0xFeed/latest" \
  -H "X-Api-Key: $API_KEY"

Response:

{
  "feedAddress": "0x...",
  "roundId": "42",
  "answer": "150000000",
  "decimals": 8,
  "formattedAnswer": "1.50000000",
  "startedAt": "1700000000",
  "updatedAt": "1700000000",
  "answeredInRound": "42",
  "description": "USD price feed",
  "version": "1"
}
FieldDescription
roundIdIncrementing identifier for this data point
answerRaw value scaled by decimals
formattedAnswerHuman-readable value with decimal point applied
startedAtTimestamp when this round was initiated
updatedAtTimestamp when this round was last updated
descriptionFeed description from the contract
versionFeed contract version

Historical rounds

Fetch a specific round by its ID:

curl "$DALP_API_URL/system/feeds/0xFeed/round/40" \
  -H "X-Api-Key: $API_KEY"

Response:

{
  "roundId": "40",
  "answer": "148500000",
  "startedAt": "1699900000",
  "updatedAt": "1699900000",
  "answeredInRound": "40"
}

History mode affects availability

Round availability depends on the feed's history mode. LATEST_ONLY keeps only the current round. BOUNDED keeps a fixed window. FULL retains all rounds.

Resolve a feed

Look up a feed by its (subject, topic) pair. Identify the topic by name or by ID:

# By topic name
curl "$DALP_API_URL/system/feeds/resolve?subject=0xToken&topicName=PRICE/USD" \
  -H "X-Api-Key: $API_KEY"

# By topic ID
curl "$DALP_API_URL/system/feeds/resolve?subject=0xToken&topicId=109530253..." \
  -H "X-Api-Key: $API_KEY"
ParameterTypeRequiredDescription
subjectaddressYesThe asset or entity address
topicNamestringAt least one of topicName or topicIdHuman-readable topic name
topicIdstringAt least one of topicName or topicIdThe keccak256 hash of the topic name

Response:

{
  "exists": true,
  "feedAddress": "0x...",
  "kind": "SCALAR",
  "schemaHash": "0x...",
  "adapterAddress": "0x...",
  "indexed": {
    "decimals": 8,
    "latestValue": {
      "roundId": 42,
      "answer": "150000000",
      "observedAt": "1700000000",
      "updatedAt": "1700000000",
      "issuer": "0x...",
      "signer": "0x..."
    },
    "registeredAt": "1699000000"
  }
}

The indexed field contains data from DALP indexing and may be null if the feed has not yet been indexed. In latestValue, issuer is the issuer identity that authorized a DALP-managed update, and signer is the EOA wallet that signed the EIP-712 typed data. For Chainlink-compatible updates, those two fields use the zero address because the external aggregator owns its own update model.

Read a feed record

Inspect the indexed feed record:

curl "$DALP_API_URL/system/feeds/0xFeed" \
  -H "X-Api-Key: $API_KEY"

The response uses the same feed item shape as the list endpoint: address, subject, topic ID, kind, schema hash, scope, factory, creator, adapter address, active status, registration timestamp, description, and latest indexed value when available.

Read issuer-signed configuration

Read immutable configuration for an issuer-signed scalar feed:

curl "$DALP_API_URL/system/feeds/0xFeed/config" \
  -H "X-Api-Key: $API_KEY"

Response:

{
  "feedAddress": "0x...",
  "subject": "0x...",
  "topicId": "109530253...",
  "expectedSchemaHash": "0x...",
  "decimals": 8,
  "description": "USD price feed",
  "historyMode": "FULL",
  "historySize": 0,
  "requirePositive": true,
  "driftAllowance": 0,
  "domainSeparator": "0x...",
  "trustedIssuersRegistry": "0x...",
  "topicSchemeRegistry": "0x..."
}

Use the configuration endpoint before accepting updates from a feed. It lets a client verify the subject, topic, expected schema hash, decimal precision, history mode, positivity requirement, drift allowance, and registry addresses.

List feeds

Query feeds with optional filters and pagination. Use isActive=true for the current directory view, or isActive=false for mappings retained after removal:

curl "$DALP_API_URL/system/feeds?subject=0xToken&isActive=true&first=20&skip=0" \
  -H "X-Api-Key: $API_KEY"

Filter parameters

ParameterTypeDescription
subjectaddressFilter by the asset or entity address
kindenumFilter by feed kind (SCALAR)
isActivebooleanFilter by active/inactive status
tokenAddressaddressFilter by associated token address
firstnumberPage size (max 1000)
skipnumberNumber of items to skip
orderByenumSort field: id, feedAddress, subject, topicId, decimals, isActive, registeredAt

Response:

{
  "items": [
    {
      "id": "0x...",
      "feedAddress": "0x...",
      "subject": "0x...",
      "topicId": "0x...",
      "kind": "SCALAR",
      "schemaHash": "0x...",
      "decimals": 8,
      "token": { "id": "0x...", "name": "Token" },
      "factory": { "id": "0x...", "typeId": "0x..." },
      "creator": { "id": "0x..." },
      "adapterAddress": "0x...",
      "isActive": true,
      "registeredAt": "1699000000",
      "latestValue": {
        "roundId": 42,
        "answer": "150000000",
        "observedAt": "1700000000",
        "updatedAt": "1700000000",
        "issuer": "0x...",
        "signer": "0x..."
      }
    }
  ],
  "totalCount": 1
}

List issuer-signed feeds

List feeds created through the issuer-signed feed factory:

curl "$DALP_API_URL/system/feeds/issuer-signed?first=20&skip=0" \
  -H "X-Api-Key: $API_KEY"

Response:

{
  "items": [
    {
      "feedAddress": "0x...",
      "subject": "0x...",
      "topicId": "0x...",
      "creator": "0x..."
    }
  ],
  "totalCount": 1
}

List adapters

List aggregator adapters created through the feed adapter factory:

curl "$DALP_API_URL/system/feeds/adapters?first=20&skip=0" \
  -H "X-Api-Key: $API_KEY"

Response:

{
  "items": [
    {
      "adapterAddress": "0x...",
      "subject": "0x...",
      "topicId": "0x..."
    }
  ],
  "totalCount": 1
}

Check staleness

Determine whether a feed's latest value is fresh enough:

curl "$DALP_API_URL/system/feeds/0xFeed/staleness?maxAgeSeconds=3600" \
  -H "X-Api-Key: $API_KEY"

See Submit updates -- Check staleness for the full response format and field descriptions.

On this page