Smart contract integration with Kleros Court (Arbitrator)

When you want to integrate your smart contract with Kleros Court for a fully trustless integration.

Kleros Court is the implementation of an arbitrator as per the Arbitration standard we developed. Most integrations consist in building or customizing an Arbitrable app so it can request arbitration to Kleros Court. Once you integrate with the Arbitration standard, you (or your users) will be able to choose any arbitrator that follows the standard to solve disputes, including Kleros.

You can build an arbitrable smart contract or ensure your existing smart contracts are compliant with the Arbitrable interface:

Create/Modify the Arbitrable app to be integrated with Kleros Court

If you want to integrate with Kleros for dispute resolution, you will have to create an Arbitrable smart contract as per the Arbitration Standard that will allow executing the following flow:

In the Arbitrable contract, you will have to define at least:

  • the address of the Arbitrator contract (look at the top of this page for the addresses of Kleros Court Arbitrators.

  • Some extra data to set up the arbitration (that will specify the sub-court to be used and the number of vote required)

    • List of subcourt IDs below,

    • We recommend starting with 3 votes.

    • Script to generate the arbitrator extra data

    generateArbitratorExtraData = (subcourtID, noOfVotes) => 0x${parseInt(subcourtID, 10).toString(16).padStart(64, "0") + parseInt(noOfVotes, 10).toString(16).padStart(64, "0")};

  • (If appeals are allowed) Stake multipliers representing multipliers of the appeal cost that a party must pay for a new round (in basis points)

List of Subcourt IDs (Ethereum Mainnet) The General Court ID is 0.

  1. Blockchain

  2. Non-Technical

  3. Token Listing

  4. Technical

  5. Marketing Services

  6. English Language

  7. Video Production

  8. Onboarding

  9. Curation

  10. Data Analysis

  11. Statistical Modeling

  12. Curation (Medium)

  13. Spanish-English Translation

  14. French-English Translation

  15. Portuguese-English Translation

  16. German-English Translation

  17. Russian-English Translation

  18. Korean-English Translation

  19. Japanese-English Translation

  20. Turkish-English Translation

  21. Chinese-English Translation

  22. Corte General en Espanol

  23. Humanity Court

You can also check the subcourt IDs on community-owned

Learn more about how to build an Arbitrable app integrated with the Kleros Court arbitrator by reading the ERC-792 Arbitration Standard linked below.

ERC-792: Arbitration Standard

Test it with the Centralized Arbitrator

You can test your arbitrable app on mainnet and most testnets by deploying a centralized arbitrator that you control (= you can easily give rulings/decisions and set the arbitration fee) and testing the integration this way. More details about the arbitrator on the page linked below.

Centralized Arbitrator

For more details, please consult the Arbitration Standard documentation, have a look at the examples of implementations shared here, or contact us on Discord, Telegram, Slack, or send a mail to (links on the bottom left).

Last updated