Proof of Reason

Reserves prove the money is there. Reason proves why it moved.

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.

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

  1. The agent states its reason as typed claims.
  2. The validator reads chain state at a pinned block and checks every premise.
  3. A signed verdict, PASS, WAIT or FAIL, is written to an ERC-8004 validation registry.
  4. 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

Most agent gates check permissions. Proof of Reason checks premises.

Live on Monad

Monad mainnet, chain 143. Addresses link to Monad Vision.
WhatAddress
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

Known limits