How our fairness works
Every result is a function of two seeds and a counter. Nothing else touches it.
The commitment
Before you place a single bet we generate a random 32-byte server seed and publish its SHA-256 hash to you. We cannot change the seed afterwards without the hash changing, and you already have the hash — so the outcome of every bet on that pair is locked in before you make it.
The outcome
Each bet consumes a stream of bytes derived from the server seed, your own editable client seed, and a nonce that increments once per bet:
Bytes are consumed four at a time and folded into a float in [0,1):
Each game maps those floats onto its own outcome — a dice roll, a shuffled mine board, a Plinko path, a Chicken Road lane. The mapping is published in includes/engine.php and never varies by player, balance or time of day.
The reveal
Rotate your seed at any time from Provably fair. That publishes the server seed permanently and starts a fresh pair at nonce 0. With the revealed seed you can:
- Check that SHA-256 of the revealed seed matches the hash we showed you before you played.
- Re-run every bet on that pair, nonce by nonce, and confirm the result we paid.
What we removed
| House bankroll pool | removed |
| Forced-loss percentage | removed |
| Per-player RTP tuning | removed |
| Bonus wagering requirements | removed |
| House edge | a flat 1%, in the paytables |
The old build decided outcomes partly from a shared bankroll and a tunable forced-loss rate. None of that exists here — the maths above is the whole story.
Return to player
| Chicken Road | 99.00% |
| Mines | 99.00% |
| Crash | 99.00% |
| Dice | 99.00% |
| Plinko | 99.00% |
| WinGo | 99.00% |
| Limbo | 99.00% |
| Tower | 99.00% |
| Keno | 99.00% |
| Wheel | 99.00% |
| Blackjack | 99.00% |
| Coin Flip | 99.00% |
| Case Battle | 99.00% |
Verify it yourself
Any language with an HMAC library reproduces our numbers. In PHP:
For dice, the roll is floor(f * 10001) / 100.