Provably fair · hmac-sha256-v1
Check the dice yourself
Every roll in Ludo Cash Arena is locked in before the match starts and can be recomputed by anyone afterwards. You do not have to trust us: verify it here, in your own browser.
Provably fair dice are rolling out. Matches will show their seeds in the Fair play button soon; the calculator below already works.
Verify a match
Fair play
How fairness works
1We lock the dice before the first roll
When a match is created the server picks a secret random server seed and shows you only its SHA-256 fingerprint (the server seed hash). From then on the seed cannot change without the fingerprint changing.
2Your seed is mixed in
Every player has a client seed (random, or one you choose in the Fair play sheet). The match's client seed is all players' seeds in seat order plus the match id, so we cannot know the dice before you sit down.
3Each roll is a numbered calculation
Roll number 0, 1, 2 and so on (the nonce) gives one die from HMAC-SHA256 of the server seed and the client seed. Bots' rolls count too, so nothing is skipped.
4After the match you can check everything
The server seed is revealed. Paste it here: your browser checks it matches the fingerprint shown at the start and recomputes every die.
The exact algorithm
Anyone can implement this in a few lines (Python, JavaScript, a spreadsheet) and get the same dice.
serverSeedHash = hex( SHA-256( serverSeed ) ) // serverSeed = 64 hex characters, hashed as text
clientSeed = seed(seat 0) | seed(seat 1) ... | matchId // humans only, joined with "|"
for each roll number nonce = 0, 1, 2, ...
for round r = 0, 1, 2, ...
message = clientSeed + ":" + nonce (r = 0)
= clientSeed + ":" + nonce + ":" + r (r > 0)
h = HMAC-SHA256( key = serverSeed as UTF-8 text, message as UTF-8 )
for each of the 8 big-endian 32-bit words x in h:
if x < 4294967292: // 6 x 715827882, so every face is equally likely
die = (x mod 6) + 1 // done
// all 8 words rejected (about 1 in 10^37): next round rWhat it proves
The dice were fixed before the first roll and nobody, including our staff, could change them mid-game. There is no admin tool that sets dice or outcomes.
What it does not promise
Fair dice are random. Nobody can guarantee a win, and a losing streak is part of chance. Play for fun and within your limits.
Read the full game rules or responsible play.
