V1 Architecture
Court V1 is built around a single contract, KlerosLiquid, on Ethereum Mainnet and Gnosis Chain. It is monolithic: staking, juror drawing, voting, appeals, and ruling execution all live in one contract.
V1 uses the ERC-792 (arbitration) and ERC-1497 (evidence) standards, blockhash-based randomness, commit-reveal plurality voting, and a hierarchical subcourt tree. For V1 contract addresses, see Deployment Addresses.
V2 System Overview
Kleros V2 uses a modular architecture where specialized contracts handle specific responsibilities:Core Components
KlerosCore
The orchestrator. Manages the dispute lifecycle and coordinates between modules.Sortition Module
Handles juror selection using weighted randomness. Key concepts:- Sortition Tree: Data structure mapping staked PNK to selection probability
- Phases: Staking → Generating → Drawing (prevents RNG manipulation)
- Delayed Stakes: Stake changes queue until the drawing phase completes
Dispute Kits
Modular voting mechanisms. The protocol ships with DisputeKitClassic but supports custom implementations.
Classic Dispute Kit features:
- Commit-reveal voting (optional, per court)
- Coherence-based rewards (vote with majority = keep stake)
- Appeal crowdfunding
Because contract simplification continued after the Certora audit (December 2025–January 2026), the audit does not cover the final version of the contracts.
Gateways (Cross-Chain)
Enable disputes from other chains to be resolved on Arbitrum.- Arbitrable on mainnet calls Foreign Gateway
- Message bridged to Home Gateway on Arbitrum
- Dispute resolved on Arbitrum
- Ruling bridged back to mainnet
veashi-sdk was published to npm as @kleros/veashi-sdk v0.0.2 (May 2026); new Base ↔ Ethereum and Base ↔ Arbitrum routes were added (June 2026); a three-oracle approach for VeaShi was adopted, with LayerZero and Chainlink CCIP as the two primary oracles and deBridge or Wormhole as a third slot (June 2026); the Envio HyperIndex indexer was integrated into the VeaShi scanner (June 2026); and a second validator became operational (February 2026).
Atlas (internal backend)
Atlas is an internal backend library for Kleros development teams only. It is not intended for community use or integration.
Components Library (kleros-app)
A shared UI components library is used by all V2 frontends.kleros-app v3.0.1 shipped in June 2026 with product differentiation between signup and IPFS and unsubscribe support, and the file viewer was extracted as a shared component (June 2026).
Dispute Lifecycle
1
Evidence Period
Parties submit evidence. Jurors are drawn via Sortition Module.
2
Commit Period (if enabled)
Jurors submit hidden vote commitments (hash of vote + salt).
3
Vote Period
Jurors reveal votes. Must match commitment if commit phase was used.
4
Appeal Period
Losing party can fund an appeal. More jurors drawn for next round.
5
Execution
Stakes redistributed. Coherent jurors rewarded, incoherent penalized. Ruling sent to arbitrable.
Court Hierarchy
Courts form a tree. Appeals can “jump” to parent courts when juror count exceeds threshold. Court parameters:minStake: Minimum PNK to stakefeeForJuror: ETH fee per juror per roundjurorsForCourtJump: Threshold to appeal to parent courttimesPerPeriod: Duration of each dispute period
Data Flow
Creating a Dispute
Executing a Ruling
Security Model
Audits and security work
- Court V2 contracts went through four internal review rounds plus an external Certora audit (see Dispute Kits above for the timeline and the note on audit coverage).
- Frontend security audits were conducted across all V1, V2, and PoH frontends, with an XSS attack-vector review (June 2026).
- React vulnerabilities (CVE-55183, CVE-55184, CVE-67779) were patched across multiple applications in a coordinated effort (December 2025).
- The bug bounty program is migrating from Hats Finance (shut down) to alternative platforms.
- Kleros Skills launched at skills.kleros.io - agent-readable knowledge packs for the protocol (May 2026). Packs available: IPFS Upload and Curate operations. Roadmap: CLI, ERC-8004 agent verification, Escrow v1/v2, and an Arbitrable App Builder.
Key Addresses (Arbitrum One)
For current addresses, check the kleros-v2 deployment files.