Introduction
Kleros Escrow enables secure transactions with built-in dispute resolution through Kleros Court. This page covers both V1 (Ethereum Mainnet) and V2 (Arbitrum).Smart Contracts
Core contract interfaces and data structures
V1 (Ethereum Mainnet)
Escrow V1 is a two-party escrow on Ethereum Mainnet, with Kleros Court available for dispute resolution. V1 integration is fully supported. The V1 interface enforces token compatibility: unsupported tokens are blacklisted with toast notifications, and the token selector modal warns about non-standard ERC20 tokens (such as USDT) that V1 does not support. The application atescrow.kleros.io is whitelisted on Reown for WalletConnect sessions.
For V1 contract addresses, see Deployment Addresses V1.
V2 (Arbitrum)
Kleros Escrow V2 is in production and supports both native ETH and ERC20 tokens, with settlement negotiations, partial payments, and deadline-based automatic execution. The sections below document V2 technical details. Technical notes for integrators:- Token decimals: the contract handles tokens with non-18 decimals correctly (USDC and USDT are supported; both are whitelisted, USDT being a V2-only addition since V1 does not support it)
- Dispute policy: the General Escrow dispute policy document is finalized and stored on IPFS
- Subgraph: version 2.2.1 runs on Goldsky and exposes
transactionHashfields, which power block explorer links in the transaction timeline - File storage: uploads go through the Atlas SIWE flow to IPFS
- Frontend stack: the interface uses kleros-app 3.0.1 (including unsubscribe-from-notifications support) and the shared UI Components Library, including the shared file viewer
Contract Addresses
- Arbitrum One (Production)
- Arbitrum Sepolia (Testnet)
Architecture
Escrow V2 consists of three main components:1
Smart Contracts
Core escrow logic supporting ETH and ERC20 tokens with settlement negotiations and dispute integration.
2
Web Application
React-based frontend for creating and managing transactions at escrow.kleros.io.
3
Dispute Resolution
Integration with Kleros Court for decentralized arbitration when parties cannot agree.
Contract Components
Transaction Lifecycle
Key Features
Native ETH & ERC20 Support
Native ETH & ERC20 Support
Create escrow transactions with any ERC20 token or native ETH. Per-token amount caps can be set by governance to manage risk.
Partial Payments & Reimbursements
Partial Payments & Reimbursements
Buyers can release partial payments and sellers can issue partial refunds, enabling flexible resolution without disputes.
Settlement Negotiations
Settlement Negotiations
Either party can propose settlements. The alternating proposal system prevents unfair rushing to arbitration.
Deadline-Based Execution
Deadline-Based Execution
Transactions can be automatically executed after their deadline, releasing funds to the seller.
Kleros Court Integration
Kleros Court Integration
Full dispute resolution through Kleros Court with appeal support and evidence submission.
Resources
GitHub Repository
Smart contracts and web application source code
Live Application
Production Escrow interface
Discord Community
Get help from the community