Verdikt is a dispute-resolution primitive any contract can call. A panel of validator LLM agents must converge byte-identically before a verdict exists — then it settles funds and enters an on-chain precedent ledger. No human in the loop.
agreement with human-expected verdicts across the public 12-case benchmark — every panel converging byte-identically.
Escrows, insurance pools, SLAs, and agent-to-agent commerce all end the same way: a subjective dispute that code alone can't decide. Today that means trusted human arbitrators, multisig committees, or stalemate. Verdikt replaces them with a court that is itself a contract — callable, deterministic, and auditable down to the prompt that decided each case.
A consumer contract opens a case; the court convenes a panel of Somnia validator LLM agents and only accepts a ruling when every juror returns the same bytes.
Both parties' evidence is sanitized, fenced, and combined — attested facts ride above untrusted claims.
3–5 validator LLM agents are convened on-chain, model pinned per case, under an on-chain versioned prompt.
Jurors must converge on the exact same bytes. Divergence means no verdict — never a coin flip.
The verdict — including graded splits — settles through pull-payments. No party can brick the court.
Every final ruling enters a queryable on-chain ledger, citable as precedent in future cases.
The arbitration engine: adaptive panels, injection-hardened prompts governed on-chain, appeals with stake-slashing, model pinned per case.
How it worksInherit VerdiktConsumerBase, implement one function, and your contract can route any dispute to the court — in under 50 lines.
QuickstartAn append-only registry of final rulings — queryable by topic, party, or consumer, and citable as case law in new evidence.
Browse case lawRegistered oracles post verified facts that the jury weighs above untrusted party claims — evidence with a signature, not a story.
Trust modelEvery claim below is reproducible against the live chain — the gates were run on real panels, and the results are recorded in the repo's deployment manifest.
Evidence is sanitized and fenced; a live red-team probe with an embedded "rule PAYEE" injection ruled against the injector, 5/5.
The court's prompts are versioned, append-only state — every case snapshots the prompt version that decided it.
Each case records the exact inference agent that judged it. Appeals re-run on the same model — verdicts are auditable against both law and judge.
When evidence is genuinely insufficient, the court can return UNDECIDABLE and settle to the safe default instead of inventing a winner.
Each is a deployed consumer contract routing its disputes to the same shared court — escrow to insurance to autonomous agents.
Two-sided evidence, graded splits, and pull-payment settlement for buyer-seller disputes.
coverageClaims pools where payouts follow the panel's ruling instead of an adjuster's discretion.
servicesService-level breaches judged on attested uptime facts — refunds execute themselves.
marketsSubjective outcomes resolved by jury — judgment as an oracle for markets code can't score.
fundingDAO grant clawbacks and freelance milestones released or recovered by verdict.
agent economyAutonomous agents can transact but can't sue. Verdikt is the court where machines resolve their disputes.
Every page below reads the live chain — real cases, real verdicts, real settlements. Nothing is mocked.
Watch a buyer agent and a seller agent escrow funds, clash, and get judged by a live AI jury — end to end on-chain.
Enter the arena courtroomEvidence, attested facts, the governing prompt, the panel, the verdict — as a timeline.
Open explorerSearch rulings by topic and look up any party's on-chain win-loss record.
Open case lawEvery final ruling on record, newest first, with graded splits and receipts.
Open analyticsThe 12-case accuracy and determinism results, case by case, divergences flagged.
OpenSimpleEscrow is the complete reference consumer — a working two-party escrow on the AI jury in under 50 lines. Your contract only decides what a verdict means for its own funds.
contract SimpleEscrow is VerdiktConsumerBase { function dispute(uint256 id, string calldata evidence) external payable { Deal storage d = deals[id]; require(msg.sender == d.payer || msg.sender == d.payee); _openDispute(id, evidence, msg.sender); // → the court } // the only function you implement: what a verdict means function _settle(uint256 ref, Verdict verdict) internal override { Deal storage d = deals[ref]; d.settled = true; uint256 toPayee = (d.amount * _payeeShareBps(ref, verdict)) / 10000; pending[d.payee] += toPayee; pending[d.payer] += d.amount - toPayee; } }
The full stack is live on testnet. Click through — every claim on this page is checkable against these contracts.
Settle the disputes your code can't — with a verdict that is deterministic, auditable, and final.