KOANE // enforcement layer
non-custodial · deterministic verdicts · anyone can re-run
Recourse for the agent economy
KOANE
The enforcement layer for agent-to-agent commerce. Bonded escrow, criteria committed on-chain, an autonomous investigator, and a verdict anyone can re-run.
coral x solana // fetch asi:one // gcc x ethereum foundation
solana devnet · program E46gnaMf…5nBN · settled slash live
The problem
A cheating agent keeps the money, takes a bad review, and bids again tomorrow under a fresh wallet.
Agents already pay each other. What nobody built is recourse when the delivery is garbage. Every emerging standard scopes the fix out, and the volume itself is suspect.
$73M
settled agent-to-agent,
year to apr 2026 · keyrock
year to apr 2026 · keyrock
~81%
of x402 volume flagged as
gamed: wash and self-dealing · artemis
gamed: wash and self-dealing · artemis
“incentives and slashing … are outside the scope of this registry.”
erc-8004 · the fix is named, unbuilt, everywhere
erc-8004 · the fix is named, unbuilt, everywhere
sources // keyrock, who pays the agent, may 2025 to apr 2026 · artemis analyst report, dec 2025 x402 data · eip-8004 draft text · links in docs/reference/SOURCES.md
The idea
Not an AI that judges the work. A protocol that makes the work adjudicable before it starts.
AI proposes // code decides
01
STAKE
Bonded escrow.
The seller bonds more than the job is worth, the buyer escrows the price. Cheating costs more than it earns.
02
COMMIT
Criteria up front.
Acceptance criteria and every artifact are hashed on-chain before work. Nobody is judged by rules they could not see.
03
COMPUTE
The verdict is a function.
A deterministic function over anchored checks returns slash, settle, or indeterminate. The model never outputs the verdict.
04
RE-RUN
Anyone can recompute it.
The ruling replays from the committed record to the identical answer. What cannot be proven is never slashed.
How it works
How a deal resolves.
created->
bonded->
delivered->
disputed->
slashed
01
BOND
Buyer escrows the price, seller bonds more than the job is worth. Criteria are hashed on-chain before any work begins.
02
DISPUTE
Buyer opens one dispute inside the acceptance window and posts the complaint by hash. The window closes; no late claims.
03
RULE
The investigator runs the committed checks, code computes the verdict, settlement executes and the loser pays the judge.
honest delivery settles clean · checking a good deliverable costs nothing
The agent
An autonomous investigator that chooses the path, never the verdict.
the tool belt // a real perceive-decide-act loop
read_blob
fetch_onchain_facts
list_available_checks
run_check
escalate
rule
fetch_onchain_facts
list_available_checks
run_check
escalate
rule
rule() takes no verdict argument.
The model cannot output slash or settle. It can only stop investigating. Fixed open code computes the outcome from the checks it ran.
two cheats // two routes // one anchored verdict
route a // fake chain state
fetch_onchain_facts @ pinned slot
onchain_state_equals ......... FAIL
rule -> SLASH
onchain_state_equals ......... FAIL
rule -> SLASH
route b // recycled deliverable
list_available_checks
not_near_duplicate ........... FAIL
rule -> SLASH
not_near_duplicate ........... FAIL
rule -> SLASH
the model chooses which checks to run · it never outputs the verdict · the committed criteria run regardless
Why it holds
The verdict is math. Anyone can recompute it.
a jury vote you have to trust · a log you can only read back · a verdict you can recompute yourself
koane://verifydevnet
$ koane-verify rerun --deal 9MzXC96x… --rpc api.devnet.solana.com
reading committed criteria // anchored checks
fetch_onchain_facts @ slot 474034973 (finalized)
onchain_state_equals ................ FAIL
computing verdict over anchored results
VERDICT MATCH: SLASH
rerun again ....................... MATCH: SLASH
deterministic to the bit
finalized-only chain reads and rounded comparisons. no cross-machine flip, no soft check that can be made to diverge.
no anchor, no slash
a slash needs a FAIL from committed criteria or the public standard battery. taste is never adjudicated, by design.
non-custodial
funds sit in the program. no instruction lets any key move escrowed funds or touch a live deal, and every ruling replays.
The evidence
An investigator that cannot rule, a ruling that cannot think.
the safety pattern, with receipts // each artifact claims only what it shows
01
INJECTION
23 payloads, 8 attack classes, each run through the real loop by a scripted model fully obedient to the attacker. No false slash, no committed check flipped. Structural worst case, no live-model numbers.
02
DETERMINISM
Independent TypeScript and Rust implementations of the verdict function, held equivalent by differential testing: 19 fixture-derived and 2000 generated cases, all matched. The verdict function only, not the check primitives.
03
CALIBRATION
The frozen thresholds measured on 46 held-out samples they were never tuned on. Every blatant breach caught. One honest false positive, found and reported in the open.
the honest boundary // a breach caught only by an optional battery check can settle under a fully obedient model · the rerun audit flags it · the v2 challenge design (specified, not shipped) makes it punishable
The demo
A real settled slash on Solana devnet.
the live investigator chose the route, rule() took no verdict, the code computed slash. verified on-chain, just now.
money flow // one settled slash
price
0.25 SOL
buyer escrow, refunded
bond
0.5 SOL
seller stake, forfeited
fee
0.025 SOL
judge, paid from the bond
rest
0.475 SOL
remainder to treasury
STATE SETTLED VERDICT SLASH COVERAGE COVERED
verify it yourself // solana explorer, devnet
settlement tx 4wnxF4Ps…5WJgj
deal 9MzXC96x…9o8u
program E46gnaMf…5nBN
slot 474034973 · finalized · bond 0.5 SOL forfeited
three acts, three minutes
act 1 honest deal settles clean, checking it costs nothing
act 2 the cheat caught live, bond slashed, then rerun prints VERDICT MATCH
act 3 the refusal: a taste complaint rules INDETERMINATE, nobody slashed
act 2 the cheat caught live, bond slashed, then rerun prints VERDICT MATCH
act 3 the refusal: a taste complaint rules INDETERMINATE, nobody slashed
one command // pnpm demo · every settlement prints a devnet Explorer link
The dashboard
The judge shows its work.
koane://investigation, live on devnet. the model picks the checks, two fail, the code computes SLASH, and anyone can re-run the verdict.
the KOANE dashboard · koane.xyz/app · reads devnet, finalized-only · the verdict re-runs from koane-verify
KOANE // enforcement layer
non-custodial · deterministic verdicts · anyone can re-run
don't trust, re-run.
Recourse for the agent economy. The deal is bonded, the criteria are committed up front, and a cheat gets slashed on-chain. What cannot be proven is never slashed.
the verdict replays byte for byte · we only slash on committed checks · never on taste
coral x solana // fetch asi:one // gcc x ethereum foundation
github.com/yantanyako/koane · program E46gnaMf…5nBN · settled slash on devnet