Arbitration and disputes

The part of the protocol where correctness is enforced by people rather than by code, why it has to be, and what that costs.

3 of 5 in the Governance path intermediate 10 min

Checked against Graph Horizon (2025-12-11)

Last read 2026-08-30 Due again 2026-11-30

Every protocol claim below was read at these sources on 2026-08-30. Where they disagree with each other, the lesson says so.

Almost everything in this protocol is enforced by contracts. Disputes are the exception, and understanding why is a good way to understand where cryptoeconomic systems have their limits.

Why not just verify on chain.

The obvious design would be for the protocol to check every answer. It cannot, for a reason that is structural rather than a matter of engineering effort.

Verifying that an indexer derived the right data means re-deriving it. Re-deriving it means doing the indexing work again, on chain, for every claim. That costs more than the work being checked, by orders of magnitude, and it defeats the purpose: the whole point is to move the expensive derivation off chain.

So the protocol does something cheaper. It makes claims comparable rather than verified. An indexer publishes a Proof of Indexing, a commitment to what they derived. Anyone who did the same work can compare. Disagreement is evidence, and evidence triggers a human process.

The roles.

Fishermen raise disputes. Anyone can be one. Raising a dispute requires a deposit of at least 10,000 GRT, which is what stops the mechanism becoming a harassment tool. A challenger has to believe they are right by more than the deposit is worth.

Arbitrators decide. This is a human judgement about evidence, and under Horizon it is also a judgement about penalty: arbitrators determine an appropriate slash amount by severity and context, capped at 10% of the indexer’s stake, with a recommended value of 2.5%.

The accused indexer presents their side. Records of what happened, when it was noticed and what changed matter here in a way they would not under a fixed automatic penalty.

What flexible slashing fixed.

Previously the amount was fixed by the protocol. A fixed penalty faces an impossible calibration problem: it must be severe enough to deter deliberate misbehaviour, which makes it disproportionate for an honest operator whose chain endpoint served subtly different data.

Judgement within a cap lets those be different. That is better for honest operators and it introduces genuine discretion, which is a real trade rather than a free improvement. Discretion means outcomes are less predictable and depend on who is arbitrating.

The protocol has chosen predictability of process over predictability of outcome, which is roughly the choice legal systems make and for similar reasons.

Why the delays exist.

Both thawing periods, the delegator’s and the indexer’s, exist because of this process. Misbehaviour is discovered after the fact. Arbitration takes time. If capital could leave immediately, every economic guarantee would be conditional on nobody noticing quickly enough.

So the delays are not friction to be optimised away. They are the window in which consequences can still attach to capital, and they are sized against how long a human process takes.

Before reading on: what stops arbitrators simply being wrong, or captured?

Nothing in the mechanism, and it is worth being honest about that.

Arbitration is the point where the protocol depends on people behaving well rather than on incentives making misbehaviour unprofitable. The protections are procedural rather than cryptographic: arbitrators are appointed through governance, decisions are visible, the cap bounds the damage any single decision can do, and the deposit filters the volume of cases.

That is a real limitation and it is shared by every system that needs to judge whether off-chain work was done correctly. The alternatives are worse: on-chain verification costs more than the work, and no enforcement at all means the answers are worth nothing.

Knowing where a system’s trust assumptions actually sit is more useful than believing it has none. This is where The Graph’s sit.

Check yourself

Why does the protocol not verify indexers' work on chain?

The Fisherman's deposit exists to:

Where does the protocol genuinely rely on people rather than incentives?