Every casino round is decided by a seed we commit to before the round starts and reveal after it ends. Nothing about the outcome can be changed in between, and you can check that yourself below, in your own browser, without trusting our server.
Before you bet we commit to a secret server seed by publishing only its SHA-256 hash. Solo games pair it with your own client seed and a nonce that counts your bets; shared rounds use the round ID.
When you cycle your seed pair (or a shared round settles) the server seed is revealed. Hash it and it must equal the hash you saw before. That is the proof it was never swapped.
Recompute HMAC-SHA256(serverSeed, publicSeed:nonce). Its first 8 hex characters ÷ 0xFFFFFFFF is a number from 0 to 1: the roll. Each game turns that roll into its outcome in a fixed way, spelled out per game below.
One roll decides the number. Classic dice is a solo game and draws from your seed pair; LIVE dice is a shared round that every player at the table sees, so it uses the round id as its public seed instead.
const crypto = require('crypto');
// One HMAC roll → a uniform number in [0, 1]
const roll = (serverSeed, publicSeed, nonce) => {
const h = crypto.createHmac('sha256', serverSeed).update(`${publicSeed}:${nonce}`).digest('hex');
return parseInt(h.slice(0, 8), 16) / 0xffffffff;
};
const serverSeed = 'PASTE_SERVER_SEED'; // revealed when you cycle (solo) or when the round settles (shared)
const publicSeed = 'PASTE_PUBLIC_SEED'; // solo: clientSeed:nonce shared: the round id
console.log('hash =', crypto.createHash('sha256').update(serverSeed).digest('hex')); // must equal the hash shown before the bet
const target = 50, direction = 'over'; // your bet
const r = roll(serverSeed, publicSeed, 0);
const number = Math.floor(r * 100) + 1; // 1..100
const won = direction === 'over' ? number > target : number < target;
console.log({ number, won });For dice, roll = ⌊r × 100⌋ + 1, giving 1–100.
No settled rounds yet.
Pick a round on the left or paste seeds from your own bet history. You can also try any seeds you like. The outcome is deterministic. How dice is derived ↑ · Verify on CodePen ↗