Feed accounts.
Network details
Account model
Feed ID
owner is the consumer authority. For agent rounds, owner is the agent payer/authority.
Feed account
value stores the raw payload when it is 32 bytes or smaller. Longer payloads up to 256 bytes are stored as a keccak hash and marked with FeedValueKind::Hash.
Main instructions
Only
submit_data_update creates or updates the Feed account (init_if_needed). Settlement instructions write RoundReceiptRecord accounts for payment and dispute accounting; they do not write the feed value.
Submit payload
- Full Schnorr verification through
molpha_verifier. - Signer bitmap is resolved against the requested registry version.
- New feed values must have a strictly newer
canonical_timestamp. - Value is encoded according to
Feed::encode_stored_value.
Direct verification with molpha-verifier
Use the Rust crate when you want to verify a signed payload without writing through submit_data_update.
For Solana-program integrations, the caller must owner-check and deserialize registry/node accounts, copy them into plain
RegistryView / NodeEntry values, then pass them to verify_data_update_resolved.
PDA derivation reference
Consumer responsibilities
- Validate the
FeedPDA from["molpha_feed", feed_id]. - Enforce freshness with
canonical_timestamp. - Decode
valueaccording to the feed schema. - Use
submit_data_updatebefore reading, or verify supplied payloads directly withmolpha-verifier. - Treat gateway and escrow status reads as advisory until settlement finalizes.