SettleMint
Feeds

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 verify freshness before 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

CLI equivalents

Use the DALP CLI when you are checking feeds from an operator shell or wiring a runbook step. The CLI calls the same feed read surfaces as the API.

GoalCLI command
List feed capabilitiesdalp system feeds capabilities
List registered feedsdalp system feeds list
Read the indexed feed recorddalp system feeds read 0xFeed
Read the latest valuedalp system feeds latest 0xFeed
Read one historical rounddalp system feeds round --address 0xFeed --roundId 42
Read issuer-signed feed configurationdalp system feeds config 0xFeed
Check staleness for a thresholddalp system feeds staleness --address 0xFeed --maxAgeSeconds 3600
List issuer-signed feeds or feed adaptersdalp system feeds issuer-signed-list or dalp system feeds adapter-list

The CLI is a read convenience for these operations. It does not change feed freshness, valuation policy, or whether a dependent workflow should accept the value.

Latest value

Get the most recent round from a known feed address. The response includes the raw answer, the formatted decimal value, and round metadata.

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

Example 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 integer value in the feed's decimal units
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

What the latest read means

The latest-value endpoint reads the feed contract directly through the AggregatorV3-compatible interface. DALP calls latestRoundData, decimals, description, and version, then returns the raw signed integer in answer alongside the decimal-formatted formattedAnswer. Use it when you already know which feed address to inspect.

This route does not approve a value for valuation, NAV, redemption, or reporting. For token pricing and FX conversion, use the token price resolution API. That endpoint applies the token's configured resolver and conversion path.

If the address is not a deployed AggregatorV3-compatible feed, DALP rejects the request instead of returning a placeholder value.

Historical rounds

Fetch a specific round by its ID. Round availability depends on the feed's history mode: LATEST_ONLY feeds retain only the current round, BOUNDED feeds keep a fixed window, and FULL feeds retain all rounds.

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

Example response:

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

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. 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. It includes the address, subject, topic ID, kind, schema hash, scope, factory, creator, adapter address, active status, and registration timestamp. When available, it also returns the description and latest indexed value.

Read issuer-signed configuration

Fetch immutable configuration for an issuer-signed scalar feed before accepting updates. The returned fields let you verify the subject, topic, expected schema hash, decimal precision, history mode, positivity requirement, drift allowance, and registry addresses.

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

Example 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..."
}

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

Each item in the response carries the feed address, subject, topic ID, kind, schema hash, factory, creator, adapter address, active status, registration timestamp, and the latest indexed value when available.

{
  "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. Each item returns the feed address, subject, topic ID, and creator.

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

Example response:

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

List adapters

List aggregator adapters created through the feed adapter factory. Each item returns the adapter address, subject, and topic ID.

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

Example response:

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

Check staleness

Compare a feed's latest updatedAt timestamp with a maximum age threshold you specify. The response reports whether the feed is stale and by how many seconds.

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

Example response:

{
  "feedAddress": "0x...",
  "latestUpdatedAt": "2023-11-14T22:13:20.000Z",
  "currentTimestamp": "2023-11-14T22:43:20.000Z",
  "ageSeconds": 1800,
  "maxAgeSeconds": 3600,
  "isStale": false,
  "roundId": "42",
  "answer": "150000000"
}
FieldDescription
latestUpdatedAtTimestamp from the latest feed round
currentTimestampLatest chain head block timestamp used for the staleness comparison
ageSecondsDifference between currentTimestamp and latestUpdatedAt
maxAgeSecondsPositive integer threshold supplied by the caller
isStaletrue when ageSeconds is greater than the supplied threshold
roundIdLatest round used for the comparison
answerRaw latest answer from that round

Use the staleness result as an input to your own valuation, NAV, redemption, collateral, or reporting policy. DALP compares the feed age with the threshold you supplied. Your workflow still decides whether to accept that value.

See Submit updates -- Check staleness when you need the same check while publishing issuer-signed updates.

On this page