Pythscan
Tech · Tech

Verifier contract

The on-chain piece deployed to every chain Pyth supports. It accepts signed updates from Hermes and exposes the price to consumer contracts.

Every chain Pyth supports hosts a Pyth verifier contract — a small piece of code that does two things: it verifies the cryptographic signature on incoming price updates (so it can trust that an update genuinely came from Pythnet via Wormhole), and it exposes the latest verified price for each feed ID to any caller. Consumer contracts on that chain talk to the verifier; they don't talk to Pythnet or Hermes directly.

What the verifier does

  • Accepts a price update payload — typically passed in by the consuming transaction
  • Verifies the Wormhole guardian signature on the payload
  • Decodes the price, confidence interval, and publish time
  • Stores the update keyed by feed ID, making it available to subsequent reads in the same block
  • Charges the update fee that funds the protocol

How a consumer uses it

A consumer contract makes two calls in sequence: first, update_price_feeds() with the payload it pulled from Hermes (paying the update fee); then, the consumer reads the price for its feed ID. Most SDKs wrap this into a single call. The verifier is intentionally minimal — its only job is signature checking and storage, not business logic.

Where the verifier lives per chain

Each chain has its own deployed verifier address. The Pyth docs list these per chain — every supported network has its own page with the canonical address, supported feed IDs, and version. Pythscan's /chains directory is the catalog of where verifiers exist; the docs are the source of truth for the actual addresses.

Related concepts