This page describes the watcher role as the protocol specifies it. The fraud proof validators and the SDK are in the monorepo.
What a watcher does
1
Follow the state queue
Read the state queue on L1 for newly committed headers. The node exposes it at
GET /stateQueue.2
Retrieve each block
Fetch the full block by its header hash from the data availability layer, and check that it matches the header on L1.
3
Verify it
Rebuild the block’s four tries and compare their roots with the header. Then replay the block from the previous UTXO set and evaluate the ledger rules. See Data availability.
4
Prove fraud
If you find a violation, start the matching computation thread, advance it through its steps, and use the resulting fraud proof token to remove the block. See Fraud proofs and ledger rules.
What you earn
A forfeited bond is split.fraud_prover_reward goes to the watcher that proved the fraud, and the rest goes to the settlement L1’s treasury. The design range for the reward is 30% to 50% of the bond.
What it costs
- L1 fees and deposits. A proof is several L1 transactions. A double-spend proof takes six. You lock some ADA in the thread while it runs, and get it back.
- Time. The proof must complete before the block’s maturity period ends. Start early.
- Compute and storage. You need the latest confirmed UTXO set and the data of every block still in the queue.