PROTOCOL On-chain arbitration · live on World Chain Sepolia

The arbitration layer decided by a jury of equals.

Jury is a decentralized arbitration protocol. Any app can submit a dispute, and a panel of staked jurors reviews the evidence and returns a binding ruling on-chain.

One juror, one vote. Stake decides your reward and your risk, never how much your vote counts.

An arbitration protocol, and the products on top of it.

Jury is a base layer plus the apps that prove it. Call the protocol directly from your contract, or use the reference apps.

Layer 0

Jury Finance Core

The arbitration engine: staking, sortition, commit-reveal voting, rewards and slashing in one contract. Any app calls createDispute and gets a binding ruling back via rule().

Layer 1

Jury Escrow App · Live

A non-custodial USDC escrow. Release needs the depositor's signature; either party can route a disagreement straight to the jury. The reference app proving the protocol.

Layer 1

Build on Jury SDK

Implement one function, IArbitrable.rule, and open disputes with a single call. Jury Escrow is a working reference you can fork.

Legitimacy from people, not capital.

Most on-chain courts weight votes by tokens held. Jury gives every juror exactly one vote.

Token-weighted courts

Whales decide the outcome

When votes scale with tokens, the biggest holder is the loudest judge.

Buy more tokens, buy more influence over the verdict.
A single large holder can swing a case alone.
An honest minority is economically outvoted.
Jury Finance

Every juror counts once

Vote weight is always 1. Stake changes your reward and your risk, never your voice.

One juror address, one vote per dispute.
Any registered juror can vote, or a random panel is drawn.
Coherent voters earn; no-shows are slashed.

Stake decides how much you earn and how much you risk. It never decides who wins.

The core invariant

From question to on-chain ruling.

Six steps, fully on-chain. No trusted oracle, no off-chain committee.

01

A dispute is opened

An app routes a disagreement to the jury, paying the fee and reserving the juror reward.

02

Jurors are chosen

Open disputes let any registered juror vote; sortition disputes draw a random panel of jurors on-chain.

03

Jurors commit

Each juror submits a sealed vote, so no one can copy another's ruling before quorum.

04

Jurors reveal

In the reveal window jurors open their votes, and the tally builds in the open.

05

The ruling resolves

Anyone can finalize; the majority outcome becomes the verdict, and a tie reopens the case.

06

The app executes

The verdict is sent back to the app that raised the dispute, and funds move, atomically.

How fairness is enforced.

Four rules keep jurors honest and the outcome legitimate. proof-of-personhood (World ID) to make each juror a verified unique human.

Voting

Commit · reveal

Sealed commit-reveal voting means no juror sees another's vote before quorum.

  • Vote weight is always 1, regardless of stake.
  • One address casts one vote per dispute.
  • Failing to reveal forfeits your reward.

Staking

Skin in the game

Stake JURY to qualify as a juror. Stake sets your reward share and slash exposure, not your vote.

  • Stake ≥ the minimum to register.
  • New stake becomes effective next epoch.
  • A 7-day cool-down guards withdrawals.

Rewards

Pull model

Jurors who vote with the final outcome share the dispute's reward pool, weighted by stake.

  • Coherent voters earn JURY rewards.
  • Claim across many disputes in one transfer.
  • A wrong vote earns nothing, but is never slashed.

Slashing

No-show penalty

Only no-shows are slashed: jurors who owed a vote and never revealed it.

  • 1% of effective stake per no-show dispute.
  • Slashed stake flows to the protocol treasury.
  • The honest minority is never punished.

Any dispute a person can judge.

If a human can read the evidence and decide, Jury can arbitrate it.

Escrow & payments

Did the work meet the agreed terms before funds release?

Freelance & gigs

Was the deliverable in scope and on time?

Prediction markets

Which outcome actually happened, when oracles can't say?

DAO governance

Were a proposal's off-chain conditions really met?

Parametric insurance

Is this claim valid before a payout is triggered?

Grants & bounties

Was the milestone actually delivered?

Reputation & moderation

Does this content or action violate the policy?

Real-world assets

Does the asset match its on-chain attestation?

Integrate arbitration in an afternoon.

  • Implement one function: rule(id, outcome).
  • Open disputes with createDispute().
  • Jury Escrow is a working reference.
  • Plain Solidity, no oracle to run.
YourApp.sol
// Make any contract disputable by the jury
uint256 id = jury.createDispute(
  address(this), PolicyKind.Sortition,
  "Did the seller deliver order #4821?", ""
);
 
// resolve() calls you back with the verdict
function rule(uint256 disputeId, uint8 outcome) external {
  require(msg.sender == address(jury));
  outcome == 1 ? _release() : _refund();
}

A different kind of court.

Most on-chain courts let the largest token holder cast the loudest vote. Jury gives every juror exactly one vote.

legitimacy comes from equal voice, not capital.

Token-weighted courts
Optimized for capital
Vote weight∝ tokens held
Sybil resistanceToken cost
Who decidesLargest holders
IncentiveAccumulate the token
Jury Finance
Optimized for judgment
Vote weightAlways 1
Sybil resistance1 address = 1 vote · World ID (planned)
Who decidesAny juror, or a random panel
IncentiveVote with the truth

The protocol earns when it's used.

Usage-based revenue: no inflation, no token emissions to sell.

Dispute creation fee

A USDC fee is charged when a dispute is opened, routed to the protocol treasury.

Escrow settlement fee

Jury Escrow takes a flat 1% on any payout, the reference app's revenue line.

Slashing treasury

No-show jurors forfeit 1% of stake; the slashed JURY accrues to the treasury.

Bring accountable arbitration to your protocol.

Open a dispute with one call and let a jury of equals return the verdict.