Verify a receipt
Paste a receipt's JSON to check its ML-DSA-65 signature against the key the service publishes, and that key against the hash pinned on chain. Nothing is sent anywhere.
a real settled scan, 0.0015 USDC
What this checks, and what it does not
- The signature. Checked in your browser against the ML-DSA-65 key the service publishes in its agent card.
- The key. That key’s hash is compared against the value pinned on the ERC-8004 registry, for every identity the receipt names. A receipt that names none cannot be verified, only read, and if this dashboard has an expected identity configured, that identity has to be among the ones it names.
- The hash. Recomputed from the receipt’s own contents, so an edited receipt fails even with a valid signature attached.
- What the anchor does not prove. The registry is open to anyone, so an on-chain anchor alone proves a key belongs to an agent, not to the service you meant to reach. That is what the pin is for.
- Nothing leaves. The receipt is never sent anywhere. Your browser makes three requests: the one-time fetch of the agent card, a read-only call to a public RPC endpoint for the on-chain key, and this dashboard’s own pin.