Integration¶
File → resolve. Steps 1 and 9 are the Arbitrable's; steps 2–8 are permissionless cranks anyone may advance.
Arbitrable Permissionless cranker Jurors
────────── ────────────────────── ─────
1 create_dispute ───► 2 request_vrf
3 commit_vrf_callback ◄── VRF oracle (also freezes dispute.frozen_root)
4 draw_seat × N ──────────────────► 5a commit
5b reveal
6a finalize_round
6b finalize_dispute (appeal window or appeal → redo 2–6)
9 get_ruling ◄──────────────────────────────────── (final_ruling set)
| # | Instruction | Caller | Gate |
|---|---|---|---|
| 1 | create_dispute |
Arbitrable | !paused; fee; staker_count |
| 2 | request_vrf |
crank | committed_vrf.is_none() |
| 3 | commit_vrf_callback |
VRF oracle | identity-constrained; writes committed_vrf + frozen_root |
| 4 | draw_seat |
crank | MST proof + sortition vs frozen_root (one tx per seat) |
| 5a | commit |
Juror | commit window |
| 5b | reveal |
Juror | reveal window |
| 6a | finalize_round |
crank | reveal_end passed ∨ all revealed |
| 6b | finalize_dispute |
crank | appeal window passed |
| 9 | get_ruling |
Arbitrable | read-only, anytime |
Integrator entry points: Arbitrable interface · Subaccords · Staking · Disputes · Draw & voting · Appeals · Ruling.
Why: ADR-0001 (Schelling), ADR-0004 (party-agnostic). Draw mechanism: ADR-0012.