SettleMint
User guidesData feeds

Data feeds overview

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

Data feeds deliver signed, on-chain price and metric data that smart contracts can consume for calculations such as NAV, collateral ratios, and yield distributions. The platform uses Issuer-Signed Scalar Feeds where authorized issuers submit EIP-712 signed values through a feed adapter contract.

Architecture

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 (decimals, history, drift) and holds submitted values.
  3. Trusted issuer - An identity authorized to publish updates to feeds using a given topic.
graph LR
    A[Issuer] -->|EIP-712 signed update| B[Feed Adapter]
    B -->|stores value| C[Feed Contract]
    C -->|read by| D[Smart Contracts]
    E[Topic Registry] -->|schema| C
    F[Trusted Issuer Registry] -->|authorization| B

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 role requiredAny user, but 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 submitting 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

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.

On this page