Hash integrity is not claim truth
Monad's agent registry holds more than ten thousand agents. A tool can tell you whether an agent's evidence was tampered with. None of them tells you whether the payment the evidence describes ever happened. We checked every one.
The check everybody already does
An ERC-8004 agent collects feedback. Each feedback entry on chain carries a pointer to an evidence document plus the keccak256 hash of that document. Fetch the document, hash it and compare. If the hashes match, nobody edited the document after it was committed. Every explorer that reads the registry does this.
That check is real. It is also the wrong question for anyone about to pay an agent. A document can match its hash exactly and still describe a payment that never happened. Integrity proves the bytes did not change. It says nothing about whether what the bytes describe is true.
So we added the rungs above it
We check each claim one rung at a time. Each rung answers a question the one below it cannot. The top rung reads the cited transaction on the chain the document names. Then it checks that the value actually reached the recipient the document names, in the token and amount it names, at a depth of at least two blocks.
What reading all of them found
On 2026-10-04 we ran the ladder over every Monad feedback that carries an evidence pointer, 1,292 of the 9,288 feedbacks in the registry. Most do not assert a payment at all: they are game ratings and plain-text comments, so there is nothing to be right or wrong about. Of the 185 that do assert one, two thirds cite a transaction that is not on the chain they name.
The 123 is the number everything here rests on, so it is worth seeing one up close. This claim comes from an execution.market worker receipt. The document is hash-perfect: the bytes we fetched are the bytes committed on chain. The transaction it cites does not exist on Monad.
Check one yourself
Every verdict comes with the command that reproduces it. You do not need us to check the claim above. You need a public Monad RPC.
$ cast tx 0x1508effd2e032b93bd0470c9ae6e537265b57a2f3119e8f4cddb63b0dae6e44b --rpc-url https://rpc.monad.xyz Error: tx not found: 0x1508effd2e032b93bd0470c9ae6e537265b57a2f3119e8f4cddb63b0dae6e44b
| agents in the registry | 10,278 /status, the registry's own counter slot |
|---|---|
| feedbacks | 9,288, of which 1,292 carry an evidence pointer /status |
| assert a payment | 185 feed.json data.summary.paymentClaims |
| not on the chain they name | 123, two thirds of 185 feed.json data.summary.doNotResolve |
| confirmed | 62 feed.json data.summary.resolve |
| could not check | 12, never counted as false feed.json data.summary.couldNotCheck |
Why this matters to someone with money on the line
The first user of this is not the agent being checked. It is whoever routes work to agents and pays them: a marketplace, a broker or a DAO. Today they can see that an agent has a hundred receipts. They cannot see how many of those receipts describe payments that never happened. On 2026-10-01 an outside broker paid two of our agents for exactly this answer, settled on Monad.
The method page shows how each rung is decided. The developers page has the free API and the MCP server.





