What it is
Some companies manage other people's money in shared pools, and they are starting to let AI decide where that money goes. Before the AI moves any of it, Proof of Reason makes it explain why, checks whether the explanation is actually true right now, and only lets the money move if it is. Every check is written down in public so anyone can see it later.
Why a manager wants it
Because AI gets things wrong, gets tricked, and cannot be cross-examined. If the AI says this place pays 12 percent and the money can come back any time, and that is false, the money does not move. And when a customer asks why their money went there, the manager can show a record written by someone independent, not their own notes.
Why a customer or an insurer wants it
They can see why the money moved without having to trust the manager or the AI. A bank publishes proof that deposits exist. This proves why deposits moved.
What it checks, every time
Three questions. Is what the AI said true? Is the move something the owner allowed? Did the AI give every reason it is required to give? Three yeses, the money moves. One no, it does not, and the refusal is on the record too.
What it does not do
It does not judge whether the move was a good idea. It judges whether the reasons for it were true and allowed. That is the whole job.
The first check, 25 September 2026
Our own test AI asked to move 5 dollars between two lending markets. It gave two reasons. Both were true at that moment. The move was allowed. The money moved seven seconds later, 20 blocks on the chain. This was our own AI and does not count as a customer.
- It said this market pays 9.5558 percent. The market read 9.5558 percent. True.
- It said at least 1,639,330.385558 dollars could be taken out on demand. The market read 1,821,478.206176 dollars. True.
- Allowed: both markets it touched were on the list the owner had approved.
- Complete: both kinds of reason it was required to give were there.
- Result: three yeses, at block 107991649. The money moved seven seconds later, 20 blocks on the chain.
See it yourself: the public record, the filing on the chain, the money moving.
The failure it is built for
In the fourteen months to March 2026, reporting counts at least four cases of the same failure: a lending market trusted a price that was hard-set or had stopped updating, while the real market price had moved. Usual, January 2025: a token hard-set at one dollar; when its redemption floor was cut to 87 cents, lenders were locked in. Stream, November 2025: the price stopped updating as its token collapsed, and an estimated 285 to 700 million dollars was at risk; another outlet reported ten times that. Moonwell, October and November 2025: two price failures, over 5 million dollars of bad debt. Resolv, March 2026: a token marked at 1.13 dollars while it traded near 0.63; one lender absorbed over 10 million dollars of bad debt in a single day.
Today the check reads rates and the cash available to withdraw. Reading the price a lender uses for its collateral is not built yet.
Sources: KuCoin and BlockBeats, both translating The Defiant. Every figure, the line it is quoted from, and one disagreement between them are in docs/SOURCES.md.
Anyone can build the check. Nobody can be their own witness.
Who it is for and what it costs
Companies that manage pooled money pay a fixed fee, quoted per pool, for three things: the rules written down, the last 30 days of moves audited read-only, and then the check running in front of their AI.
Insurers and listing platforms: make this check a condition of cover or of listing. We show you what it finds in your last 30 days.
The AI itself pays 0.10 USDC per check. The check earns the same whether the answer is yes or no, so it is never paid to say yes.
Pre-registered, before any code
The questions, the numbers that would count as a pass, and the numbers that would kill it were all written down before any code. The file says it was registered on 17 September 2026, and it is the first commit in the repository, 073cceb, dated 18 September 2026. Its fingerprint, the sha256 below, was posted publicly on 25 September 2026: the post.
- sha256 of docs/PREREG.md
5f6a494f937dc6fc915ae154fe347728aea5816c08523204bb73dedf02c7c2d4- The three dates
-
- 13 Oct 2026.
- 3 Nov 2026.
- 15 Dec 2026.
- The fit gate
- In plain words: by 15 December 2026, at least 1 in 20 of the moves we audit must have rested on a reason that was false when it was made, two trials must have been paid for, any amount above zero, and one manager, insurer or listing platform must have committed in writing to require the check. If any of that is missing, the hosted check is not built, and the code stays public.
- The terms, quoted from that file
- Results publish at each gate date whichever way they fall, including a kill.
Contact
Managing pooled money with an AI? Write to dj@proofofreason.com.
For developers
The vault only moves when the agent's stated reason is true on-chain, in mandate, and complete.
For principals who have to answer for an automated allocator: vault curators evidencing reallocations to depositors, insurers pricing an AI-allocated vault, platforms deciding what to list.
The fit gate, verbatim from docs/PREREG.md: 2026-12-15: fit gate. Pass requires A1 pass, 2 paid pilots, and 1 written requirer. A miss means no hosted validator is built; the code stays open source as consulting collateral.
The agent pays 0.10 USDC per check over x402. The validator earns the same on PASS, WAIT and FAIL, so it is never paid to say yes.
Doctrine
The LLM reads. The chain testifies. TypeScript decides.
Hold the veto, never the keys.
How it works
- The agent states its reason as typed claims.
- The validator reads chain state at a pinned block and checks every premise.
- A signed verdict, PASS, WAIT or FAIL, is written to an ERC-8004 validation registry.
- The gate executes only on PASS, asks the owner on WAIT, and reverts on FAIL.
What it does not do: it does not judge whether a decision is wise, only whether its premises are true and allowed.
What it catches
- A false premise. Stream Finance, November 2025: a hardcoded $1.00 oracle against a $0.26 market, $285M exposed. The TRUE check reads the price at the block.
- A disallowed action. Grok/Bankr, May 2026: a prompt-injected permission grant, $174k out. The ALLOWED check holds the mandate.
Most agent gates check permissions. Proof of Reason checks premises.
Live on Monad
| What | Address |
|---|---|
| Vault | 0x28900B0B2DDA5d2d61cDF17BE8b7091206a04Bf9 |
| Gate | 0x8fF582f268aB8E2148B548Aa061c5273bC383120 |
| Validation registry | 0x8e2b835d43bB93cE46CcA9994f41596dB162007C |
| Validator | 0xEC37691732204714DDfd024B67F1B7abfcF3FC9E |
| Identity registry | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
| Validator agent | ERC-8004 id 10259 on the identity registry above, its registration file carrying the pre-registration sha256 below |
| Demo agent | ERC-8004 id 10258 on the identity registry above |
| API | https://api.proofofreason.com, x402, 0.10 USDC per check, exact scheme, eip155:143 |
Why Monad
A verdict is only useful if execution follows before the state it checked moves. The gate accepts a verdict for 60 blocks, about 18 seconds at Monad's 0.30 s block time. The first check to execution took 20 blocks, 7 seconds by block timestamps. The same 60-block bound on Ethereum L1 is 12 minutes.
Monad charges a transaction its gas limit, not its gas used, so a refused call costs the same as an executed one. The gate exposes a free read, previewPremises, that returns the same chain state the gate will re-check, and the agent asks it before spending a limit. Monad prices the first read of a storage page and warms the rest, and a Morpho market's state sits on one page, so re-asserting a utilization or liquidity premise inside the executing transaction is one cheap read rather than a reason to trust the validator.
Record
- First receipt, 25 Sep 2026: PASS at block 107991649. Then the registry write, then the execution.
-
Every verdict is sealed by a receipt, served at
https://api.proofofreason.com/receipts/{intentHash}. -
Agent compliance page:
https://agents.proofofreason.com/agents/{gate}. Indexer deploys 28 Sep. - How the issuer handles being wrong: the DJZS correction record.
Known limits
- One validator key today; every verdict is on the registry and re-checkable by anyone, and a second validator is the roadmap.
- What the gate still trusts the validator for: the observations the chain cannot re-read, rates above all, at the pinned block, and that the signed tally counts what the receipt shows. Both are checkable afterwards through an RPC that still holds state at the pinned block, such as https://rpc-mainnet.monadinfra.com. Utilization, liquidity and the Kuru book are re-read by the chain at execution, and the rule that turns counts into an outcome is compiled into the gate.
- The validator sees an agent's calldata and claims before the chain does. A dishonest validator could trade on that. Today the answer is a policy, not a mechanism: no copy of non-PASS intents beyond their receipts, and no trading on gate inputs. A second validator or an enclave would replace the policy.
- The check judges premises and mandate, not whether the decision is wise.
- The registry is interim until Monad's canonical ERC-8004 validation registry ships.
- The 30-day audit reads MetaMorpho V1 vaults today. Morpho Vault V2, used by some curators, is not supported yet.