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.

This guide covers reading data from feeds: querying the latest value, fetching historical rounds, resolving feeds by subject and topic, and listing feeds with filters.

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 feeds only have the current round. BOUNDED feeds keep a fixed window. FULL feeds retain all rounds.

Resolve a feed

Look up a feed by its (subject, topic) pair. You can 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 DIDX and may be null if the feed has not yet been indexed. In latestValue, issuer is the OnchainID identity contract that authorized the update, and signer is the EOA wallet that signed the EIP-712 typed data.

List feeds

Query all feeds with optional filters and pagination:

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 IssuerSignedScalarFeedFactory:

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 ScalarFeedAggregatorAdapterFactory:

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