Don't trust us. Check the math.
Server commits first
Server generates a random seed and publishes its SHA-256 hash before you bet. Changing the seed after would break the hash. You'd see it instantly.
You add randomness
Your client seed (you pick it) gets combined with the server seed plus a nonce that increments every bet. Neither side controls the outcome alone.
Verify after
Rotate your server seed whenever you want. We reveal the old one. Hash it, confirm it matches, re-run the formula on any bet. Done.
Seed is locked before your bet. Changing it breaks the hash. You catch it on verify.
You control half the input. We can't predict your client seed, so we can't engineer an outcome.
Formulas are public. HMAC-SHA256 for everything. Re-implement it yourself if you want.
Independent streams. Every mine, trap, bounce, block, and card uses its own labeled HMAC call. Knowing one tells you nothing about the next.
Base formula: HMAC-SHA256(serverSeed, clientSeed:nonce[:label:index]). First 8 hex chars to 32-bit integer to game result.
Dice
HMAC(seed, client:nonce) produces a float [0,1) scaled to 0-99.99. Compared to your target.
Mines
Fisher-Yates placement. HMAC(seed, client:nonce:mine:i) per mine. Payout = product of (remaining/safe) per reveal, times (1 - edge).
Tower
HMAC(seed, client:nonce:tower:floor) picks the trap column per floor. Payout = (cols/safe)^floors times (1 - edge).
Plinko
HMAC(seed, client:nonce:plinko:row) picks left or right per peg. Final bucket maps to payout table.
Strip Mine
HMAC(seed, client:nonce:stripmine:i) per block, rolled against weighted ore table. Hit lava = bust.
Blackjack
6-deck shoe, Fisher-Yates shuffle. HMAC(seed, client:nonce:shuffle:i) per swap. Cards dealt in order.
Cases
HMAC(seed, client:nonce) against weighted item table. Drop chances shown before you open.
We take a flat 5% cut from winning payouts. That's it. The games aren't rigged. The odds are mathematically fair. The edge is just our fee, applied after the result is calculated. It's a service charge, not a thumb on the scale.
Example: you win a bet that should pay 2x. You get 1.90x instead of 2.00x. The 0.10x difference is our cut. The game itself played out exactly as the math dictated.
The edge is visible on every game screen. You can verify it in the payout formulas above.