eventwheel.LESS “TRUST US.” MORE “CHECK FOR YOURSELF.”Back to the wheel ↗

FAIR BY DESIGN. VERIFIABLE BY YOU.

A little luck.
A lot of proof.

The animation puts on a show. The result comes from two random seeds, a commitment made before your browser sends its seed, and the prize odds saved for that draw.

01

Commit

The server seals a fresh 256-bit seed with SHA-256. Your browser saves its hash and the prize configuration before generating its own seed.

02

Combine

HMAC-SHA256 combines the revealed server seed, your browser’s seed, a unique draw ID, and the committed prize configuration.

03

Check

Rejection sampling maps the output to the configured prize weights. Your browser checks the receipt before animating the winner.

Check a spin.

RUNS IN YOUR BROWSER
Have a receipt file? Verify it here.

NO MYSTERY BOX.

The small print of the math.

Algorithm: event-wheel-hmac-sha256-v1. The prize configuration is canonical JSON of ordered [id, name, color, weight, inventory] tuples. Eligible weights are positive integers; zero-stock prizes are excluded. For total weight W, reject any 32-bit HMAC word at or above floor(2³² / W) × W, then take word modulo W. If all eight words are rejected, increment the block counter and hash again. The accepted ticket selects a cumulative weighted interval.

Each commitment expires after five minutes and can complete only once. Retrying the same completed draw and client seed returns the same receipt. Demo receipts are hosted for seven days; downloaded copies can be verified without contacting the server.