Live drops

Provably fair

Every case open, upgrade and battle round comes down to a roll. Neither side can pick it: we commit to our seed first, and the client seed is yours. This page explains the mechanics and lets you check any roll.

1 ยท Commit

Before your first roll, the server generates a secret seed and publishes its SHA-256 hash. If the seed were ever swapped, the hash would no longer match.

2 ยท Roll

Each roll is HMAC-SHA256 over three inputs: the server seed, your client seed and a counting nonce. We committed to our seed before your bet. The client seed is yours to set.

3 ยท Reveal

To see your server seed, rotate it on the Profile page. Battle seeds are revealed automatically when the battle ends. Compare the seed against the published hash, then recompute any roll below.

  • Cases: the roll falls into one of the drop intervals. Odds per item are on the case page.
  • Upgrades: you win if the roll is below the displayed win chance.
  • Battles: all rounds use a single committed server seed plus a combined seed built from every player's snapshot.

This link carries no bet data. Paste your seeds manually.

Verifying case open โ€”

This roll's server seed is not revealed yet. The commitment hash below is all that is public. Rotate your seed on the Profile page (or wait for the battle to finish), then come back with the revealed seed to check the roll.

A battle uses a single server seed for every round: committed when the battle is created, revealed once it ends. The client seed is combined โ€” take every participant's seed snapshot in seat order, join them with ":", and hash the result with SHA-256. For round R and seat i, the nonce is (R - 1) * players + i, counting active seats from 1. To verify: enter both seeds, player count, and round count โ€” the grid recomputes every roll, plus the tie-break roll that would pick the winner if the battle tied. Optional cross-checks (commitment hash, seed snapshots) are at the bottom.

Optional cross-checks

Snapshots, in the order entered Order matters โ€” it is the seat order
Joined with ":" One line, snapshots separated by colons
SHA-256 -> combined client seed The hash of that line is the battle's combined seed

HMAC message Message we signed
HMAC-SHA256 digest Signed hash (HMAC-SHA256)
First 16 hex -> uint64 First 16 hex digits as a number
uint64 / 2^64 -> roll (8 decimals) Number / 2^64 -> 0-1 (8 decimals)
Recorded roll Your roll
SHA-256 of server seed Fingerprint of the server seed (SHA-256)
HMAC message (combinedSeed:tiebreak) Message we signed โ€” no nonce
HMAC-SHA256 digest Signed hash (HMAC-SHA256)
First 16 hex -> uint64 First 16 hex digits as a number
uint64 / 2^64 -> roll (8 decimals) Number / 2^64 -> 0-1 (8 decimals)
Winner pick tie players are the tied ones counted in seat order; floor(roll x count) picks one

Set your client seed →

Common questions

What if I lose connection mid-spin?

Your result is decided the moment you click โ€” the spin is just the animation. Lose connection mid-spin and the item is still yours. It is already in your inventory when you come back.

Can you pick a server seed that favors the house?

No. The commitment locks our seed before your first roll. You pick the client seed, and you can change it after seeing our hash. The result depends on both.

Why does the seed hash stay the same across my rolls?

One server seed covers your whole session, so we committed to it before your first roll. Each roll also carries its number, the nonce, so results cannot be reordered or reused. The reveal has to hash back to the same commitment, and you can check that on this page.

What does rotating my seed do?

If you want to audit your session, rotate the seed on your Profile page. Rotation is free and instant: it reveals the seed you were playing on, and every past roll becomes checkable. New rolls start on a fresh committed seed at nonce 0.

Where do my seeds live?

Your client seed and the current commitment hash are on your Profile page. You can edit the client seed there at any time. Revealed server seeds appear on your History rows once you rotate.

When do battle seeds reveal?

Automatically, the moment the battle finishes. The revealed seed and every player's snapshot are on the battle page.

How do I know this page runs the code I am reading?

Copy /provably_fair.js and run the math anywhere. It is one plain file with no build step, and HMAC-SHA256 exists in every language. The page runs this exact file.