SettleMint
User guidesData feeds

Data feeds overview

Understand issuer-signed scalar data feeds, their architecture, required permissions, and configuration properties.

Data feeds are the on-chain source of signed numeric data for asset prices, FX rates, NAV inputs, collateral ratios, yield inputs, and other scalar metrics. This section is for platform administrators who configure feeds, feed operators who publish values, developers who read resolved prices, and reviewers who need to understand who can change each part of the feed setup.

A feed setup answers four questions before any value can be used:

  1. What data is allowed? A verification topic defines the scalar schema. Issuer-signed scalar feeds use the fixed signature (int256 value).
  2. What entity does the data describe? A feed scope points the value at a global market pair, an asset, or an identity.
  3. Who may publish the value? A trusted issuer must be authorized for the topic. Publishing also requires an EIP-712 signature from that issuer.
  4. Who consumes the value? Smart contracts, portfolio views, asset reporting, and the token price API read the latest indexed or on-chain feed data according to their own pricing rules.

DALP records feed authorization, signed submissions, on-chain feed state, and indexed price reads. Off-chain pricing policy, data provider SLAs, economic validation of submitted values, and non-scalar oracle designs stay outside this user flow except for the Chainlink-compatible feed registration option.

This overview answers one reader question: which control has to exist before a numeric value can affect an asset, price view, or reporting calculation? If you are ready to perform a task, use the decision table below to move to the topic, feed, trusted issuer, publishing, or replacement guide.

Feed mental model

A data feed combines three on-chain concepts:

  1. Verification topic - Defines the data schema. Scalar feed topics use the fixed signature (int256 value).
  2. Feed contract - Stores configuration such as decimals, history mode, drift allowance, and submitted values.
  3. Trusted issuer - An identity authorized to publish updates to feeds using a given topic.
Rendering diagram...

The topic controls the shape of the value. The feed controls where the value belongs and how submissions are stored. The trusted issuer controls who can publish updates. These are separate controls so a platform team can let one role define feed schemas, another role register feeds, and a market data operator publish values without giving that operator platform administration rights.

Feed state lifecycle

A feed value becomes usable only after each dependency is visible to the platform:

StageWhat must be trueWhat can read it
Topic registeredThe scalar feed topic exists with the (int256 value) schema.Feed creation can select the topic.
Feed registeredThe feed contract is linked to a scope, subject address, source type, decimals, and history mode.Platform settings and feed lists can show the feed once indexed.
Issuer trustedThe publisher identity is trusted for the feed topic.Publishing can submit signed values for that topic.
Value submittedThe issuer signs the value, timestamp, feed address, nonce, and deadline, and the feed accepts the update.Smart contracts can read on-chain feed state.
Value indexedThe indexer has processed the feed update event.Price APIs, reporting screens, and portfolio views can resolve the latest indexed value.

This lifecycle is why a newly created feed can appear before its first value is available to a price API. Registration, signing, on-chain submission, and indexing are separate steps.

Who owns each part

PartOwnerWhat they controlWhat they do not control
Verification topicVerification policy managerTopic name and scalar feed kindFeed deployment, feed values, or trusted issuer assignments
Feed registrationFeeds managerScope, subject address, source type, decimals, history mode, positivity rule, and drift allowanceWhether a publisher is trusted for the topic
Trusted issuer assignmentCompliance or verification administratorWhich identity may issue updates for the topicFeed configuration or submitted values
Feed updateTrusted issuer and its signerThe signed numeric value submitted to the feedTopic schema, feed scope, or immutable feed properties
Price and reporting consumptionPlatform services and smart contractsHow active feed data is resolved for prices, reporting, and calculationsThe economic correctness of an off-chain value before it is signed

Decide what to configure next

If you need to...Configure this firstThen read
Define a new category of numeric data, such as a price, rate, or scoreScalar feed topicCreate a topic
Attach data to a market pair, token, or identityFeed scope and feed propertiesCreate a feed
Allow an identity to publish updatesTrusted issuer for the feed topicConfigure trusted issuers
Submit the latest valueSigned feed updatePublish a feed update
Change or stop resolving an existing feedDirectory registrationReplace or remove a feed
Read token prices or FX conversion paths from an integrationIndexed token price endpointToken price resolution API

Required permissions

Different operations require different platform roles. Roles are assigned on the System Access Manager page under Platform Settings.

OperationRequired roleUI label
Create / delete / update verification topicsclaimPolicyManagerVerification policy manager
Register / replace / remove feedsfeedsManagerFeeds manager
Publish feed updatesNo platform role requiredAny user with an associated identity, but the identity must be a trusted issuer for the feed's topic

Changing roles on the System Access Manager

Trusted issuer requirement

Publishing a feed update does not require a platform role, but the authenticated participant must have an associated identity contract, and that identity must be registered as a trusted issuer for the feed's verification topic. See Configure trusted issuers for setup instructions.

Feed scopes

Every feed is scoped to a subject address that determines what entity the data describes.

ScopeSubject addressUse case
GlobalZero address (0x000...000)Market-wide data such as BTC/USD or ETH/USD exchange rates
Asset-scopedToken contract addressAsset-specific data such as a bond's NAV or a deposit's interest rate
Identity-scopedIdentity contract addressEntity-specific data such as a credit score or risk rating

Choose the narrowest scope that matches the value. Use a global feed for market data shared across assets, such as an FX pair. Use an asset-scoped feed when the value belongs to one token, such as a base price or NAV input. Use an identity-scoped feed when the value belongs to a specific identity.

Where pricing feeds are used

Pricing flows usually combine asset-scoped base-price feeds with global FX feeds. The asset-scoped feed gives DALP the token's source price. Global FX feeds connect that source currency to the organization's reporting currencies or to the currency requested by an API client.

ConsumerFeed data usedReader question it answers
Token price APIAsset-scoped base-price feed plus global FX feeds when conversion is neededWhat price did DALP return, in which currency, and through which conversion path?
Portfolio and asset reportingExchange-rate feeds for the currencies enabled for the organizationWhich reporting currencies can the organization display?
Asset-specific calculationsAsset-scoped feeds for NAV, collateral ratios, yield inputs, or other configured metricsWhich external numeric input did the asset use?

Developer integrations can inspect the resolved price, source currency, and conversion path through the token price resolution API.

Exchange-rate target currencies

DALP uses exchange-rate feeds to convert portfolio and asset values into the currencies your organization supports for reporting. During organization setup, the base currency must be included in the selected currency list, and at least one selected currency must be different from the base currency.

Setup normally uses the exchange-rate provider's supported-currency snapshot. If that snapshot is not available yet, DALP starts from the standard target currencies EUR, SGD, AED, and JPY. The setup workflow creates feeds for the selected non-base currencies, so choosing EUR as the base currency creates initial target feeds for SGD, AED, and JPY.

After setup, admins can review enabled currencies from Platform Settings > Currencies & Exchange Rates. New supported currencies can be added from that page. Existing currencies cannot be removed, because their feeds are registered on-chain and may already be used by historical valuations, NAV reporting, and portfolio views.

When a supported currency is added, DALP creates the corresponding issuer-signed scalar feed for the currency pair. The feed is populated by the exchange-rate refresh cycle after the feed is available to the platform, so a newly added currency may appear before its first refreshed value is ready.

Infrastructure readiness

System and organization setup prepare the shared feed infrastructure before exchange-rate feeds are created. DALP registers the shared price topic, resolves the issuer-signed scalar feed factory, and waits until the indexer can see the required feed events before continuing.

Feed creation and value seeding are separate steps. Creating exchange-rate feed contracts requires the feeds manager role. During organization setup, DALP checks the administrator wallet before creating the initial exchange-rate feeds. DALP restores that role when needed. Seeding the first values also requires an issuer identity that is trusted for the price topic, plus a signer authorized by that identity. If that issuer trust state is not visible yet, DALP can still create the feed contracts and let the refresh cycle publish values once the trust state is ready.

These setup steps are repeat-safe. If the topic or factory already exists, DALP uses the existing on-chain configuration instead of creating a duplicate. Temporary RPC, transport, or indexer visibility issues can be retried, so setup can continue once the dependency catches up.

See Feeds system for the architecture details.

Feed properties reference

These properties are set when creating a feed and cannot be changed after deployment.

PropertyValuesDescription
Data formatNumeric (Scalar)The data type stored by the feed. Currently only scalar (int256) is supported.
Topic nameSelected from registered topicsThe verification topic that defines the feed's data schema. Only topics with the (int256 value) signature are available for scalar feeds.
Source typeIssuer-signed, ChainlinkHow values are submitted. Issuer-signed uses EIP-712 signatures; Chainlink reads from an external oracle contract.
Decimals0 - 18The number of decimal places for the stored value. For example, a USD price with 8 decimals stores 100000000 to represent 1.00.
DescriptionFree textA human-readable description of what the feed measures. Required for issuer-signed feeds.
History modeLatest only, Bounded, FullControls how many past values the feed retains.
History sizeInteger >= 1Only used with Bounded history mode. Sets the maximum number of historical values to keep in a circular buffer.
Require positiveOn / OffWhen enabled, the feed contract rejects any submitted value that is zero or negative.
Drift allowanceInteger (seconds)Maximum allowed time difference between the observedAt timestamp in a submission and the current block timestamp. Set to 0 to disable drift checking.

History modes explained

  • Latest only - The feed stores only the most recent value. Previous values are overwritten. Best for feeds where only the current price matters.
  • Bounded - The feed keeps a fixed-size circular buffer of past values set by History size. When the buffer is full, the oldest value is replaced. Useful for moving averages or volatility calculations.
  • Full - The feed stores every submitted value permanently. Provides a complete audit trail but uses more on-chain storage.

Data feeds power real-time asset analytics and pricing

Setup workflow

Setting up a data feed involves four steps:

Create a scalar feed topic

Register a verification topic with the feedScalar kind. This defines the data schema for your feeds. See Create a topic.

Register a trusted issuer

Add the identity that will publish feed updates as a trusted issuer for the topic. See Configure trusted issuers.

Create the feed

Register a new feed contract with the desired scope, topic, and configuration properties. See Create a feed.

Publish updates

Submit signed values to the feed. See Publish a feed update.

Limits and operating scope

Scope itemWhat it means
Scalar data onlyThe user flow creates scalar feeds with the (int256 value) signature. Bytes feed topics are not selectable in this workflow.
Immutable feed propertiesScope, source type, decimals, history mode, positivity rule, and drift allowance are set when the feed is registered. Create a replacement feed when those properties need to change.
Trusted issuer enforcementA platform role is not enough to publish. The submitting identity must be trusted for the feed topic, and the signed update must pass feed validation.
Price and reporting readsThe token price API and reporting views read indexed feed data. Newly created feeds or newly published values must be indexed before API clients see them.
Submit retry safetyFeed update submission runs through the transaction queue. Use an idempotency key on API retries so duplicate requests resolve to the same queued submission result.
External value qualityDALP validates authorization, signature, positivity, and drift rules. The platform does not decide whether the signed market price or metric is economically correct.

On this page