Skip to main content
Kleros arbitration can be integrated on either protocol version:
  • V1 uses the ERC-792 arbitration standard (IArbitrable / IArbitrator) on Ethereum Mainnet and Gnosis Chain. See ERC-792 and ERC-1497 for the full V1 standards.
  • V2 uses IArbitrableV2 / IArbitratorV2 on Arbitrum, with dispute templates and cross-chain support.
The steps below show both. Pick the version that matches the network you are deploying to. For contract addresses, see Deployment Addresses.

Installation

Contract Addresses (Arbitrum One)

Always verify addresses on the official repository before deploying to production.

Minimal Integration

Step 1: Implement the arbitrable interface

Step 2: Encode Extra Data

The extraData parameter specifies which court and how many jurors:

Step 3: Get Arbitration Cost

Court IDs

Start with General Court (ID: 1) for testing. Use minJurors = 3 for most cases.

Dispute Templates

Jurors need context. Create a template that describes the dispute:
Register templates on-chain or reference via IPFS URI.

Testing

1

Use Arbitrum Sepolia

Deploy to testnet first. Get Arbitrum Sepolia ETH from a public faucet such as the Arbitrum faucets list
2

Get Test PNK

Testnet PNK is available from the Kleros faucet
3

Create a Test Dispute

Call createDispute() with test ETH for fees

SDK (Optional)

For frontend integration, use the Kleros SDK:

Next Steps

Architecture Deep Dive

Understand how KlerosCore, Dispute Kits, and Sortition Module work together