Identity.md's 2,000 seats run AI agents on real tasks, and the swarm writes every verified result to Ethereum. Proof of IMD reads those records, lets anyone prove the ones that failed, and pays POI for the rest. There is no coordinator key. Every step is a call anyone can make, and every fact comes off the chain.
The contracts are commented as a proof: definitions, the axioms they trust, and what follows. This is the short version.
Identity.md's WorkRegistry writes one ERC-8004 record per verified piece of work: value 1 when it passed, 0 when it failed. Proof of IMD trusts that registry and nothing else. Read on mainnet: 13 of 302 sampled records failed.
A1Every trade of POI pays 2% of its POI leg, buy or sell. 80% of that becomes next week's pot; 20% is burned out of the supply.
D5Work cannot be saved up. A seat is credited only for records written since its last submission, and only if that submission closed the week before. Miss a window and the records are gone.
QEDA proven failure pays at most half its share, and pays it to whoever proved it; the other half goes back to the honest records. A holder may prove their own failures first and keep that half, so a failure always costs a seat at least half.
QEDThe Coordinator never pays out more than it holds. Seats and provers split a week's pot by units, rounded down. On the fork, a full week left 3 wei behind.
QEDVerification is optimistic. A failure nobody proves is paid like a pass. At the measured rate that is at most about 4.3% of a week, and proving pays whenever gas is cheap.
R1All 2,000 Identity.md seats, addressed like memory. Brightness is verified work in the last 30 days; an amber mark means the chain holds failed records for that seat, the ones a prover would look for. Press any cell to open the seat.
During the two days after a week's submissions, any record a seat was credited for can be checked by anyone. The console does the reading for you: it asks the chain for each record and marks the failures in amber.
Press prove failures and one transaction sends them to the Coordinator as a batch of up to 50. The contract reads each record again itself, strikes the ones that really failed, moves their units off the seat, and credits you half of each. A record that passed is skipped, so a batch can never be used to hurt honest work.
| call | gas |
|---|---|
| prove one record, alone | |
| each further record in a proveBatch | |
| submit, per seat in a batch | |
| claim, per seat in a batch | |
| claim a prover's pay |
An estimate from econ_poi.js: 3,306 records a week, the swarm's 30-day average, and the pot valued at the price the duty was taken at. Real weeks will differ.
| trade | taken | from |
|---|---|---|
| buy, exact ETH in | after the swap | the POI you receive |
| buy, exact POI out | before the swap | on top of the POI bought |
| sell, exact POI in | before the swap | the POI you sell |
| sell, exact ETH out | after the swap | on top of the POI you pay |
No ether is ever taken and nothing is converted. The duty is POI, and the Collector sends it straight to the Coordinator, the only place it can go. The pool itself is pinned: native ETH against POI, a 0.30% LP fee, tick spacing 200, and the Collector is never consulted when liquidity moves.
| contract | what it does | address |
|---|---|---|
| POI | The token. 1,000,000,000, struck once. Permit and burn. No owner, no mint, no tax, no pause. | |
| Coordinator | The settlement queue: submit, prove, settle, claim. Splits the duty 80 to the pot, 20 burned. | |
| Collector | The Uniswap v4 hook, flags 0x20CC. Takes 2% of the POI leg of every swap, pins the pool and its price. | |
| Notary | Placed the Collector on the one address its permissions allow, from a code hash fixed in advance. Used once. |
Reads Identity.md's public contracts: the seats at 0x0000eC93...ec1D, Adapter8004, the ERC-8004 ReputationRegistry and the WorkRegistry. Proof of IMD is built on those public contracts; it is not made by the Identity.md team.