Verify Every Draw
Don't trust — verify. Every drawing publishes two files anyone can audit. Pair them with the pre-committed hash and the public drand beacon and the math is end-to-end checkable.
snapshot.json
Who was eligible
- Top of file
- winner · randomWord · randomIndex · totalTickets · snapshotBlock · snapshotHash · vrfRequestId
- Body
- Every eligible holder + their ticket count, sorted by wallet address.
- Hash
- SHA-256 of the sorted
[address, tickets]pairs — locks the participant set.
tickets.json
Which ticket belongs to whom
- Top of file
- winner · randomIndex (cross-check with snapshot.json)
- Body
- Array of
{ owner, from, to }— each holder owns contiguous ticket ranges. - Order
- Exact on-chain sortition-tree walk order — walking the ranges reproduces the contract's pick step for step.
How to verify a drawing
Open the draw you want to audit and download both files — snapshot.json and tickets.json.
Check both files declare the same winner address and the same randomIndex.
Walk the ticket ranges in tickets.json until you reach randomIndex — the owner of that range must equal the winner.
Hash the sorted [address, tickets] pairs from snapshot.json with SHA-256 — it must equal snapshotHash.
Confirm the beacon: randomIndex must equal the drand round’s randomness mod totalTickets, the beacon signature must verify against the quicknet public key, and the snapshot commitment must be anchored on-chain before the round’s emission time.
…or open any draw below — the checks run automatically in your browser.
Why this is fair
drand randomness
The winning index comes from a pre-declared drand beacon (League of Entropy) — unpredictable before the draw, verifiable by anyone after.
Frozen participant set
The holder snapshot is committed by SHA-256 hash at the award block. Anyone re-indexing the chain sees the same set.
Equal odds per ticket
Every ticket has exactly 1 / totalTickets chance. More BALL means more tickets — never better ones.
Independent re-runs
Pull the same files, run the same modulo, walk the same ranges. The result reproduces on any machine.