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. 1.
  2. 2.
  3. 3.
    Token Listing
  4. 4.
  5. 5.
    Marketing Services
  6. 6.
    English Language
  7. 7.
    Video Production
  8. 8.
  9. 9.
  10. 10.
    Data Analysis
  11. 11.
    Statistical Modeling
  12. 12.
    Curation (Medium)
  13. 13.
    Spanish-English Translation
  14. 14.
    French-English Translation
  15. 15.
    Portuguese-English Translation
  16. 16.
    German-English Translation
  17. 17.
    Russian-English Translation
  18. 18.
    Korean-English Translation
  19. 19.
    Japanese-English Translation
  20. 20.
    Turkish-English Translation
  21. 21.
    Chinese-English Translation
  22. 22.
    Corte General en Espanol
  23. 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.

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.
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 [email protected] (links on the bottom left).