Every hourly drawing is locked in before its randomness exists. The entry list is committed, a future beacon
round is named, and the winner falls out of one modulo operation. Nothing about that requires trusting us —
it needs the published files and a few minutes.
The commit comes first
Each draw publishes a commit file naming the pinned block, every eligible wallet, its ticket range, and the
beacon round that will decide the outcome. The file’s SHA-256 hash is the draw’s tag — alter a single
character and the tag no longer matches.
Randomness with no owner
The named round belongs to a public randomness beacon on a fixed schedule and did not exist when the commit
was written. Compare the two timestamps: the entry list was frozen first, so no one could have shaped the
list around a value they already knew.
Winner math, in one line
index = randomness mod totalTickets. Walk the committed
ranges until you land on that index; the wallet owning it is the winner. The ranges are contiguous, so the
result is order-independent and reproducible.
Payout you can open
The pot leaves the prize wallet as an ordinary Robinhood Chain transaction. Look it up in the block
explorer: same recipient as the math predicted, same amount as the pot, within moments of the draw.
By hand
Checking a draw yourself.
Five steps, no accounts, no permission needed. A hash tool and a browser are enough.
1 · Fetch the commit. Download the commit file for the hour you care about, along with its published tag.
2 · Hash it. Run SHA-256 over the file exactly as served. The digest must equal the tag; if it doesn’t, the file you have is not the one that was committed.
3 · Pull the beacon round. Read the round number out of the commit and fetch its randomness from the beacon’s public API. Confirm the round’s time comes after the commit’s.
4 · Do the modulo. Take the randomness modulo the committed ticket total, then walk the ranges to find which wallet holds that index.
5 · Match the transfer. Open the payout transaction in the explorer and check the recipient against the wallet your own arithmetic produced.
Or let a script do it
One command, end to end.
The verifier re-checks a draw from scratch: commit hash, beacon round, winner math, and the payout
transaction. It reads only public data — no keys, no credentials, nothing to install beyond Node.js.
# check the most recent drawnode verify_draw.mjs --api <your-api-base>
# check one specific draw by its tagnode verify_draw.mjs --api <your-api-base> --tag ab12cd34
Point --api at the endpoint configured in
assets/js/config.js. Exit code 0 means every check passed.
Fairness, stated plainly
More tokens buy more tickets — never better ones.
Odds are one over the total ticket count for that hour, identical for every ticket in the draw.
The commit fixes who is in it, and the beacon fixes which one wins.