Skip to main content
Every Molpha verifier runs the same verification pipeline over the same bytes: re-derive the round’s selection set, add up the public keys of the nodes that signed, and check one Schnorr signature over the signed message. The message has no chainId, which is why one attestation verifies everywhere.

Pick your chain

The Starknet verifier is a port of the EVM pipeline, and parity tests check that unmodified EVM-produced signatures verify on Cairo.

What the verifiers check

The molpha-verifier crate accepts signaturesRequired = 0. If you call the crate directly, enforce your own minimum quorum before trusting the result.

Consumer checklist

Verification proves that enough selected nodes from the named registry version signed exactly this payload. Everything else is your policy:
  1. Check the result. On EVM and Starknet, verify returns (false, code) instead of reverting. Ignore the bool and you accept unverified data.
  2. Pin the source. Compare sourceId with the source you expect.
  3. Require a minimum quorum. signaturesRequired >= MIN, never ==. Whoever requests a round chooses its quorum.
  4. Enforce freshness. Pass a non-zero maxAge, or compare timestamp / 1000 with your clock. timestamp is in milliseconds.
  5. Prevent replay where it matters. No verifier records consumed attestations; a Solana Feed only accepts newer timestamps.
  6. Decode and bound the value. value is 32 opaque bytes until you decode it with the source’s encoding.
  7. Pick the feed you trust on Solana. Each submitter writes its own Feed account; validate its address and choose the submitter.
  8. Don’t trust delivery. A gateway response, an MCP summary or a relayer proves nothing until a verifier has checked the attestation.

Addresses

Program ID and verifier addresses for each network are on Deployments.