TalentLayer Documentation
  • 👋Introduction
    • Value Proposition
    • Options for Integration
      • On-Demand Integration
      • Native Integration
    • TalentLayer's Functions
      • PlatformID
        • Fees & Economics
      • TalentLayerID
      • Reviews
      • Services
      • Escrow and Dispute
        • Dispute Workflow
        • Arbitration
          • Kleros Arbitration
          • Platform Managed Arbitration
    • Current Network Liquidity
    • Decentralization
  • ⚙️Technical Guides
    • Web 3 SDK & API
    • StarterKit Template
    • Technical Schemas
    • Network Support
    • Lower-Level Guides
      • Smart Contracts
        • Deployments
        • TalentLayerPlatformID.sol
        • TalentLayerID.sol
        • TalentLayerService.sol
        • TalentLayerReview.sol
        • Escrow & Dispute Contracts
      • The Graph
        • Introduction
        • Querying from an application
        • Queries examples
        • Implementing the pagination
      • Metadata
      • Third-Party Modules
        • Lens Protocol - Social
        • XMTP - Messaging
        • Sismo - Privacy
        • Iexec - Web3Mail
      • Messaging
        • Integrating XMTP
      • Standards
        • ERC-792: Arbitration standard
        • ERC-1497: Evidence Standard
      • How-To Guides
        • How to implement minting TalentLayer IDs?
        • How to implement the service creation?
        • How to implement the proposal creation?
        • How to implement the proposal validation?
    • Delegation
      • Meta Transaction
      • Delegate System
        • Setting
        • User workflow
        • Service creation example
        • How mintForAddress works
  • ⭐Get a Platform ID
  • 🧠Inspiration for Builders
  • 💬Contact The Team
  • 🦝Core Developer Guides
    • Subgraph Local Setup
    • Smart Contracts Local Setup
    • Advanced Documentation
    • Contract & Graph Deployment Guide
    • TalentLayer Improvement Proposals
    • Audit Report
Powered by GitBook
On this page
  • About The Standard
  • Arbitrator
  • Arbitrable

Was this helpful?

  1. Technical Guides
  2. Lower-Level Guides
  3. Standards

ERC-792: Arbitration standard

PreviousStandardsNextERC-1497: Evidence Standard

Last updated 2 years ago

Was this helpful?

About The Standard

Defines a contracts standard for arbitration. Specifically, defines two types of contracts:

  • Arbitrable contracts: where disputes can arise (e.g. an escrow contract)

  • Arbitrator contracts: used to resolve disputes.

Every Arbitrable contract can be adjudicated by every Arbitrator contract The standard defines the way that Arbitrable and Arbitrator contracts should interact with each other.

Using two contracts allows separation between the ruling and its enforcement. In this way, an arbitrable app can easily switch from one arbitration service to another one with no breaking changes.

Arbitrator

Functionalities:

  • allow dispute creation (createDispute function, must be called by the Arbitrable contract)

  • allow to appeal a ruling (appeal function, must be called by the Arbitrable contract)

  • allow giving rulings (by calling the rule function of the Arbitrable contract)

Arbitration costs:

The creation of a dispute has a cost to be paid to the arbitrator. Appeals also have a cost.

To create a dispute, both parties should pay the arbitration fee. Whoever wins the dispute should get the funds and should get reimbursed for the arbitration fee.

E.g.: if the arbitration cost is C, both parties will pay C to create a dispute summing up to a total of 2C paid in fees. Half of the fees (C) will go to the arbitrator and the other half (C) will be reimbursed to the winner of the dispute

Appeals:

It is up to the arbitrator to decide whether or not to allow appeals:

  • no appeals: the ruling given by the arbitrator should be immediatly final

  • with appeals: after a ruling is given an appeal period opens, in which parties can appeal the current decision.

Also, it is up to the arbitrator to define how to handle appeal periods and what happens when an appeal is received.

An example could be: after a decision is taken the parties have some time to appeal the decision. If no one appeals within this timeframe then the decision becomes final, otherwise the arbitrator has to take a decision again (which can be the same one as before) until no one appeals. Appealing has a cost so parties won't do it forever if that doesn't change the arbitrator's mind.

However, arbitrators should only give a final ruling (call rule on the Arbitrable contract) when all appeals are exhausted.

Dispute status:

  • Waiting: the dispute is this status when it gets created

  • Appealable: the dispute got a ruling and the Arbitrator allows to appeal it.

  • Solved: the dispute got a ruling and the ruling is final. This doesn’t imply that the ruling has been enforced, it just means that the decision on the dispute is final and to be executed.

    • if a dispute is not appealed within the appealing time period, it becomes Solved

Arbitrable

Functionalities

  • determines in which cases a dispute occurs, defining logic to create disputes (by calling createDispute on the Arbitrator contract and paying the required fee)

  • determines in which cases appeal is possible, defining logic to appeal disputes (by calling appeal on the Arbitrator contract and paying the required fee)

    • Note: it just defines in which situation it would be possible to appeal a dispute, based on the context of the arbitrable dApp. It still depends on the arbitrator to decide whether to allow appeals or not.

  • enforces decisions given by the Arbitrator contract (rule function, must be called by the Arbitrator contract)

Workflow

  • The Arbitrable contract calls createDispute on the Arbitrator contract to create a dispute.

  • The Arbitrator contract gives a ruling. The appeal period opens.

  • Appeal is done through the Arbitrable contract calling appeal on the Arbitrator contract

  • When the appeal period is over the Arbitrator contract gives a final ruling, calling rule on the Arbitrable contract

  • The Arbitrable contract enforces the ruling

⚙️
ERC 792: Arbitration Standard · Issue #792 · ethereum/EIPsGitHub
erc-792/IArbitrator.sol at master · kleros/erc-792GitHub
Logo
Logo
erc-792/IArbitrable.sol at master · kleros/erc-792GitHub
Logo