SettleMint
Developer guidesFeeds

Feeds overview

On-chain data feeds registered in a system-level FeedsDirectory. Use feeds for price reporting, NAV tracking, interest rates, and custom oracle data.

Feeds are on-chain data sources registered in a system-level FeedsDirectory. Each feed is identified by a (subject, topicName) pair, where the subject is the asset or entity the data relates to, and the topicName is a human-readable string identifying the data type (e.g., "NAV", "PRICE/USD"). The API computes the on-chain topicId (bytes32 keccak256 hash) from the topic name internally.

Feeds are currently API-only. There is no UI workflow for feed management.

Use cases

  • Price feeds -- publish token prices for collateral valuation or trading
  • NAV reporting -- report net asset value for fund tokens on a schedule
  • Interest rates -- publish benchmark rates for variable-yield instruments
  • Custom oracle data -- any scalar value that needs to be available on-chain

Key concepts

ConceptDescription
FeedsDirectorySystem-level registry mapping (subject, topicId) to a feed contract address
SubjectThe Ethereum address of the asset or entity the feed relates to
TopicNameA human-readable string for the data type (e.g., "PRICE/USD"). The API computes the on-chain topicId hash automatically.
FeedKindThe type of data the feed provides. Currently only SCALAR (a single numeric value)
RoundA single data point submission, identified by an incrementing roundId
HistoryModeHow the feed stores historical rounds (see below)
AdapterA stable-address proxy that resolves to the current underlying feed for a (subject, topicName) pair

Feed types

Issuer-Signed Scalar Feed -- deployed via the IssuerSignedScalarFeedFactory addon. The platform manages signing and submission. Updates are authorized via EIP-712 typed data signatures from trusted issuers.

External feeds -- any existing feed contract (e.g., Chainlink) can be registered in the directory manually. The directory only stores the address mapping; it does not manage the external feed's lifecycle.

History modes

ModeOn-chain valueBehavior
LATEST_ONLY0Only the most recent round is stored. Previous values are overwritten.
BOUNDED1A fixed-size ring buffer of rounds. Oldest rounds are evicted when the buffer is full. Configure the size with historySize.
FULL2All rounds are stored permanently. Storage grows without bound.

Choose LATEST_ONLY for feeds where only the current value matters (e.g., real-time prices). Use BOUNDED when consumers need a sliding window of recent values. Use FULL for audit trails where every historical value must be preserved.

Capabilities check

Before operating on feeds, verify which feed modules are installed on the platform:

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

The response indicates whether the FeedsDirectory, IssuerSignedScalarFeedFactory, and ScalarFeedAggregatorAdapterFactory are installed, along with their contract addresses and the supported feed kinds.

Feed lifecycle

Rendering diagram...

Asset analytics with data feed integration

Next steps

On this page