Verify the post-quantum anchor, in this browser

This page runs the published verifier verify-anchor.mjs itself, unchanged, in your browser: it reads block headers from the RPC you name, checks that each anchor block's hash covers its certificate, and verifies every Falcon-512 and SLH-DSA seal with code running here. Nothing is sent anywhere except the RPC and key-manifest reads.

What this page does, and what it does not do

It does: for the last N anchor blocks it reads the headers from the RPC you name, checks that each anchor block's hash covers its post-quantum certificate, verifies every Falcon-512 seal in JavaScript against the published key registry, checks that each sealing key belongs to a distinct validator of the block the seals sign (read from that block's own header), and checks that the registry you hold is the one pinned on chain (a Merkle proof of the contract's storage under a certified block). The verifier is the published verify-anchor.mjs, byte for byte; nothing is computed on our servers.

It does not: it is not a light client. It does not sync the header chain, does not follow the validator set on its own and does not check consensus between blocks; it trusts the RPC endpoint for which blocks exist and what they contain (run your own node and name it as the RPC to remove that), and it verifies only the anchors you ask for. It says nothing about who runs the validators. Numbers shown below are measured in this browser, on this device.