Skip to main content
A Molpha feed answers one question:
What exact value did the selected node quorum sign for this data source?
There is no separate feed-creation transaction. Feed identity is deterministic, and the Solana Feed account is created lazily the first time a signed update is written with submit_data_update. Gateway settlement writes payment receipts only — it does not create or update the Feed.

Feed lifecycle

Two consumption modes

Feed identity

Feed identity is derived from the request authority, API config hash, and quorum:
  • owner is the subscription consumer authority for subscription-backed rounds.
  • owner is the payer/authority for x402 agent rounds.
  • apiConfigHash is keccak256(JSON.stringify(canonicalizeAPIConfig(apiConfig))).
  • signaturesRequired is a single byte.
The domain string still contains JOB for compatibility with the deployed program, but the public concept and SDK field are feedId.

Public data, private config

Only the apiConfigHash is stored on-chain. The full API config can remain off-chain, and private API secrets can be encrypted for selected nodes through the gateway.

Solana Feed account

The Solana account is keyed by:
It stores: Payloads up to 32 bytes are stored as-is. Payloads up to 256 bytes are hashed with keccak256 and stored as FeedValueKind::Hash.

Values and decoding

The signed value is interpreted by the application that owns the feed schema.
  • Values up to 32 bytes are stored directly.
  • Longer values up to 256 bytes are stored as a keccak hash.
  • Numeric feeds should document scale explicitly, for example value / 10 ** 6.
  • Consumers should decode bytes only after verifying the payload or validating the Solana Feed PDA.

API design checklist

Independent nodes must converge on a byte-identical value to co-sign it:
  • Prefer settled, finalized data over live-drifting values.
  • Avoid per-request timestamps, request IDs, and unstable ordering.
  • Pin responseParser to the exact field you need.
  • Include valueTransform in the config before deriving feedId.
  • Reuse the exact same canonical config when requesting signed data.

Payload schema

The portable artifact produced by each round.

SDK reference

Derivation helpers and DataUpdateResult fields.