Audit any draw yourself

Don't trust — verify

Every Cashout draw publishes the two files anyone needs to audit it. Pair them with the onchain ORAO VRF signature and the math is checkable end to end — no insider access required.

1

Download both files for the draw

Every draw — the 10-minute sessions and the hourly jackpot — publishes a snapshot.json and a tickets.json at /api/draws/<drawNo>/. Open the draw in Results and grab both.

2

Cross-check the two winners

Both files declare the same two winner addresses and the same two ticket indexes. If they disagree, the draw is not valid.

3

Walk the ticket ranges for winner 1

In tickets.json each holder owns a contiguous {owner, from, to} range. Walk `ranges` until you reach winners[0].ticketIndex — that range's owner must equal the first winner.

4

Walk the re-packed ranges for winner 2

The second winner is drawn from the same line with winner 1's tickets removed. `secondRoundRanges` is that re-packed line: walk it to winners[1].ticketIndex and you must land on the second winner. This is why one wallet can never take both prizes.

5

Re-hash the snapshot

Join the sorted `owner:tickets` lines from snapshot.json with newlines and hash with SHA-256. The result must equal snapshotHash — the commitment the bot published before it asked for any randomness.

6

Confirm the randomness onchain

Open vrfRequest on Solscan: that is the ORAO randomness account for this draw. Each ticket index is SHA-256(randomness ‖ slot number) mod (tickets remaining), taking the first 8 bytes as a big-endian integer.

What's in each file

snapshot.json

  • winners[], snapshotSlot, snapshotHash, vrfRequest, payoutTx
  • holders[] — every eligible wallet plus its ticket count, sorted by address
  • snapshotHash — SHA-256 of the sorted `owner:tickets` lines

tickets.json

  • winners[] (same values as snapshot.json — cross-check)
  • ranges[] — {owner, tickets, from, to}, contiguous and half-open
  • secondRoundRanges[] — the same line re-packed without winner 1

Randomness

The winning index comes from the ORAO VRF on Solana — unpredictable before it is drawn and verifiable after. Every ticket has exactly 1 / (total tickets) chance, and tickets are capped at 300 above 5,000,000 $CASH so no wallet can buy its way to certainty.

Snapshot integrity

The snapshot is committed at a chosen Solana slot. Anyone fetching that slot later sees exactly the same holders — change one byte of the sorted pairs and the SHA-256 snapshot hash breaks.