Skip to content
OpenVerdict

OpenVerdict

Decentralized Factual Verification Protocol

Created on 4th September 2026

•

OpenVerdict

OpenVerdict

Decentralized Factual Verification Protocol

The problem OpenVerdict solves

The problem

Whenever a disputed question is worth money or attention, somebody has to declare the answer. Today that is one AI model, a token-weighted vote, or a private resolution desk. None show their work, all can be wrong or captured, and human fact-checkers are stepping back just as generative AI makes convincing falsehoods free. Asking multiple AIs instead of one changes nothing if their votes live in a server log the operator can edit. Verification has to be a property of the system, not a promise from whoever runs it.

What OpenVerdict does

Paste a statement or a URL. OpenVerdict turns it into one checkable claim, convenes a jury of five AI jurors, and settles a verdict on Sui that anyone can recompute.

  • A jury, not a chatbot. Sui's native randomness draws five seats across DeepSeek, Kimi and MiniMax via GonkaRouter, at most two per family. No vendor or operator picks the judges.
  • Research you can watch. Each juror searches the live web for and against the claim. Every search and page opened appears on the claim page as it happens, and every quote is hashed and stored on Walrus. A YES or NO needs word-for-word quotes from two different sites and a search for counter-evidence, or it fails closed.
  • Secret votes, then a public debate. Jurors seal their votes on Sui before anyone reveals, so nobody can copy another juror. Four of five matching votes settle the claim in about twelve minutes. A split jury cross-examines in public, citing only evidence already on record, and votes once more under seal. Still split means UNRESOLVED, never a forced answer.
  • A verdict on chain. An immutable certificate on Sui with a 0 to 100 Truth Score. Budgets escrow in SUI, seats that did valid work are paid, and anyone can stake SUI on a seat.
  • All AI on Gonka. Every inference runs through gonkarouter.io, and each Gonka Request ID is committed on chain before the vote is revealed, so it can be checked against Gonka's public receipts.
  • Built for agents too. Any agent can drive and recompute the whole flow with the ov command line (weather, board, extract, submit, watch, audit, trace) or the skill at app.openverdict.info/SKILL.md, installable with npx skills add Marcussy34/OpenVerdict.

What people use it for

  • Prediction markets and DAOs. An oracle for questions no price feed can settle: did the milestone ship, did the grant deliver, did the proposal meet its conditions. Bonded claims finalize free when nobody challenges. A challenge convenes the jury, and the losing bond pays for it.
  • Anyone with a viral claim. A verdict with the evidence, the dissent and the exact pages the jury read, instead of "an AI said so".

Why it is safer

Nothing rests on trusting us. Fetch the bytes from Walrus, hash them, compare against Sui, and re-ask the same model through Gonka. The Audit page reruns 15 checks per juror in your browser, and ov audit reruns more than a hundred from the terminal. Reveal keys are time-locked with Mysten Seal, so sealed juror work opens after the deadline even if we disappear. The operator can pause but cannot forge: an edited vote, a swapped page or a changed score breaks a hash anyone can check.

Challenges we ran into

Gonka weather.
Shared gateway 429s/524s, erratic response times, and silent model-swapping risked commit deadlines. We resolved this with X-Gonka-No-Fallback to fail closed on swaps, 25-second same-model hedging, an immediate commit pump as seats finish, and a two-minute probe queue that halts submissions during bad gateway weather and auto-relaunches failed runs up to three times.

Jurors answering from memory.
Models hallucinated citations without opening sources. We moved all browsing execution to the engine: citations are now strictly verified against stored text from pages the juror actually visited, requiring quotes from two distinct domains and counter-evidence searches, or the vote fails closed to UNSURE.

Sui randomness rules, then a live draw starvation.
Sui’s &Random rules forced us into a private entry function drawing all five seats at the end of a PTB, but a non-backtracking draw starved committees when new stake was added. We fixed it with an eight-rejection resample fallback, stake eligibility guards, a MISSING_COMMITTEE void mechanism, and replay tests across historical randomness states.

Byte-identical commitments in two languages.
A single mismatched byte in blake2b256(BCS(preimage)) between TypeScript and Move invalidates reveals. We unified the state codes into a strict wire contract and pinned six shared test vectors across both codebases to validate edge cases, phases, and BCS length prefixes.

Running four processes on one operator key.
Splitting the app across Railway workers broke database locks via connection pooling, created gas coin race conditions, and caused Walrus-to-Sui epoch mismatches. We switched to transaction-scoped advisory locks (pg_advisory_xact_lock), assigned dedicated gas coins per worker, rebuilt retry factories, and added an explicit epoch converter.

Tracks Applied (2)

AI × SUI

OpenVerdict is a decentralized verification protocol for factual claims, and Sui is the court it runs in. Five AI juror ...Read More

Sui Foundation

AI For Society

OpenVerdict is a public fact checker with a jury inside: a decentralized verification protocol where every piece of AI r...Read More

Gonka Router

Discussion

Builders also viewed

See more projects on Devfolio