Skip to content

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.