# A brief introduction to ERC-792

By [chester](https://paragraph.com/@chester) · 2024-01-10

---

ERC-792 is an arbitration standard on Ethereum, proposed and implemented by Kleros, a decentralized dispute resolution protocol.

ERC-792 uses two separate types of contracts to divide arbitration and execution: `Arbitrator` contract and `Arbitrable` contract. The former, akin to a court, is solely responsible for arbitration; while the latter, where disputes arise, executes the contract according to the arbitration outcome.

This abstraction makes it possible that developers of `Arbitrable` contracts do not need to know the internal process of `Arbitrator` contracts, and vice versa.

**What Arbitrator contract does:**

*   creates a dispute (`createDispute` function, must be called by `Arbitrable` contract).
    
*   appeals a ruling (`appeal` function, must be called by `Arbitrable` contract).
    
*   delivers a ruling (by calling `rule` function of `Arbitrable` contract).
    

**What Arbitrable contract does:**

*   determines in which cases a dispute arises, defining logic to create disputes (by calling `createDispute` function on `Arbitrator` contract with required fee).
    
*   determines in which cases an appeal is possible, defining logic to appeal (by calling `appeal` function on `Arbitrator` contract with required fee).
    
*   enforces decisions delivered by `Arbitrator` contract (via the `rule` function, which must be called by `Arbitrator` contract).
    

![Major functions](https://storage.googleapis.com/papyrus_images/75639cc643e3f1fea53c970d19627d02d6f5604fa1b638cbea08e498bb75cd87.png)

Major functions

**Appeal**

Following a decision by the `Arbitrator`, the involved parties are allotted a specific period to challenge the ruling. If the decision is not appealed within this window, it becomes conclusive. However, if an appeal is made, the `Arbitrator` has to make a decision (allowed to be the same) again.

This process continues until there are no further appeals. The cost associated with appealing serves as a deterrent against indefinite appeals.

**Fees**

Initiating a dispute incurs a fee payable to the `Arbitrator`, and appealing a decision also carries a cost. Both parties of a dispute must pay the arbitration fee, while the winner of the dispute will get reimbursed.

**Dispute status**

*   `Waiting`: initial status when a dispute arises.
    
*   `Appealable`: the dispute got a ruling and the `Arbitrator` allows to appeal it.
    
*   `Solved`: the dispute got a ruling and the ruling is final, to be enforced. If a dispute is not appealed within the appealable time, it becomes `Solved`.
    

**Workflow**

*   `Arbitrable` contract calls `createDispute` function on `Arbitrator` contract to create a dispute.
    
*   `Arbitrator` contract gives a ruling, initiating the period for appeals.
    
*   `Arbitrable` contract calls `appeal` function on `Arbitrator` contract to make an appeal.
    
*   Once the appeal period ends, `Arbitrator` contract delivers a final ruling, calling `rule` function on `Arbitrable` contract.
    
*   Finally, `Arbitrable` contract implements the decision.
    

![Workflow](https://storage.googleapis.com/papyrus_images/071d2359bb4ba4ef39119f299cb3462795a493b1ad76f689f11ca13ab7fe90bd.png)

Workflow

[https://developer.kleros.io/en/latest/index.html](https://developer.kleros.io/en/latest/index.html)

---

*Originally published on [chester](https://paragraph.com/@chester/a-brief-introduction-to-erc-792)*
