Provably fair

Every reward case roll can be checked: we commit to its inputs before you open, and reveal them right after.

How a roll works

  1. You have a seed pair: a secret server seed, shown up front only as its SHA-256 hash, and a client seed you choose.
  2. Each case version publishes its odds: every prize with a ticket range between 1 and 100,000, and the SHA-256 of that table.
  3. When you open, the ticket is read from HMAC-SHA256(server seed, client seed:nonce). The prize is the row whose range holds it.
  4. Right after the opening the pair rotates: the server seed is revealed, and the next one, committed before you could change your client seed, takes over.
  5. Recompute it here, with the code on any receipt, or with any HMAC tool.
hmac   = HMAC-SHA256(key = server_seed, message = client_seed + ":" + nonce)
ticket = floor(int(hmac[0:13], 16) × 100000 / 2^52) + 1
prize  = the row whose ticket range holds ticket

The odds hash is the SHA-256 of one line per row, sorted by ticket: the range, the prize ($ value with 2 decimals, or x multiplier with 4) and the name, joined by |.

1-70000|$0.07|P250 | Sand Dune (Field-Tested)
70001-92000|$0.22|Glock-18 | Candy Apple (Factory New)
…

Check an opening

Paste a receipt link or an opening id. The receipt loads with its odds, and every step is recomputed here.

Roll with your own numbers

Type a server seed, client seed and nonce to see the HMAC and the ticket. Loading an opening fills these in.

Your seeds

Sign in to see your seed pairs and openings. Log in