Verifiable AI decisions on 0G. Verdict Layer is a single on-chain primitive that answers "is this claim true?" and hands back a TEE-attested AI verdict with cryptographically anchored reasoning.




Verdict Layer is a verifiable AI adjudication primitive built natively on 0G.
It answers one question "is this claim true?" and returns a TEE-attested verdict with cryptographically anchored reasoning, all settled on-chain in under 30 seconds. A single contract surface (AssertionRegistry) serves as the universal backend for any decision that needs to be provably fair: freelance dispute resolution, parametric insurance payouts, DAO milestone releases, and content authenticity certification four reference applications sharing one adjudication layer. Judges run sealed inference inside TEE enclaves on 0G Compute. Every chain-of-thought is written to 0G Storage with its Merkle root anchored in the on-chain verdict event, making every decision independently re-verifiable by any third party. For high-stakes claims, an AUDITED mode opens a bond-backed challenge window where three independent models (DeepSeek V3, GLM-5-FP8, Qwen3-VL 30B) vote as a swarm majority wins. The protocol implements ERC-792 (Kleros-compatible arbitrator interface) and introduces ERC-7857 soulbound Agent IDs for non-transferable judge reputation tracking. This means any dApp already integrated with decentralized arbitration can swap Verdict Layer in without modifying their application contracts.
Live on 0G Mainnet: https://verdictlayer.xyz
0G integration points
| Chain | 9 contracts on 0G Mainnet (addresses below). ERC-792-style arbitration interface + ERC-7857 soulbound judge reputation NFT.
| Compute | Judgment worker calls broker.inference against TEE-verified providers; every response goes through processResponse().
| Storage | Evidence uploads + reasoning transcripts via ZgFile + Indexer. Every bytes32 evidenceRoot on-chain is a 0G merkle root.
| Oracles | /api/oracle/flight calls AviationStack, canonicalises the payload, uploads to 0G Storage, returns the root for a claim.
| Agent ID | ReputationRegistry mints a soulbound NFT per judge. Verdicts and lost appeals accumulate on-chain.
Built and deployed end-to-end - from Solidity to production UI - during the hackathon period. Every component is live on 0G Mainnet (chainId 16661).
Smart Contracts (Solidity 0.8.24, Hardhat, deployed on mainnet)
9 contracts: AssertionRegistry, VerdictEnforcer, EscalationManager, ReputationRegistry (ERC-7857), Verifier, Escrow, ParametricInsurance, MilestoneVault, AuthenticityCertifier
83 unit tests covering the full assertion lifecycle, bond settlement, challenge mechanics, and all four application callbacks
ERC-792 arbitrator interface + ERC-7857 soulbound judge NFT standard
Backend (Fastify + BullMQ + Drizzle + Redis)
Chain indexer: poll-based event mirror with checkpoint persistence - indexes all 6 contracts and auto-finalises AUDITED verdicts after challenge windows close
Judgment worker: evidence download, prompt assembly, TEE streaming inference, reasoning upload to 0G Storage, on-chain verdict submission
Appeal worker: 3-judge swarm across independent TEE providers, majority-vote resolution
Real-time SSE endpoint streaming tokens as the judge reasons - users watch the chain-of-thought form before the TX lands
Oracle integration (AviationStack) for parametric insurance triggers
0G Integration (all three layers, production usage)
Chain: 9 mainnet contracts, AssertionRegistry processes live assertions
Compute: TEE-verified inference via 0g-serving-broker (0.6.5), processResponse() fee settlement on every call, multi-model provider discovery and selection
Storage: evidence file uploads + full reasoning transcript archival via ZgFile + Indexer, Merkle root verification pipeline
Frontend (Next.js 16, React 19, Tailwind, wagmi/viem)
Marketing landing page with animated protocol flow diagram
Four fully functional application UIs: create escrows, file insurance claims, submit milestone proofs, request authenticity checks
Live reasoning stream panel (SSE) showing judge thought process in real-time
Privy wallet authentication, on-chain transaction signing, evidence upload flow
Architecture explainer page with deployment addresses
Key Technical Decisions
INSTANT vs AUDITED dual-mode: applications choose their trust/latency tradeoff at assertion creation time
Bond economics: challenge requires matching the asserter's bond; loser forfeits to winner, creating skin-in-the-game for appeals
Callback pattern: VerdictEnforcer dispatches outcomes to application contracts via a standardized onVerdict(assertionId, outcome, reasoningRoot) interface - new apps integrate by implementing one function
Monorepo with shared types/ABIs/deployment manifests ensures contract changes propagate to API and frontend without drift