Provable Fairness Details
This game is provably fair. A dice roll is composed of the following three things:
- Server seed
- Client seed
- Nonce (the number of bets you have made with the current server/client seed pair)
Before you place a bet, the server seed SHA256 hash, client seed, and nonce are all visible to you. The client seed can be changed at any time, without changing the server seed.
When you make a bet your client seed is combined with the nonce and a colon (:) For example if your client seed is:
And your nonce is:
Those are combined to make:
We then hash that string with non-hashed server seed using the hmac_sha512() function, which results in a 128 character hex string.
We then take the first 5 characters of that hex string and convert them to a decimal integer (that will be in the range 0 through 1048575.)
If that number is < 1,000,000 then we divide it by 10,000, round the resulting decimal to 2 places, and use that as your dice roll.
If the number is >= 1,000,000 then we continue to iterate the string 5 characters at a time until we get a number < 1,000,000
In the very unlikely event we get through all 25 groups (125 characters) without getting a decimal lower than 1 million, then we use the remaining 3 hex digits which results in a number between 0 and 4095, which results in a dice roll of 0.00 through 0.41
You can validate bets on-demand by generating a new server seed pair at any time. When you generate a new seed, the non-hashed version of the previously used seed will be shown to you. For convenience, your personal bet history also shows the server seed, client seed, and nonce that was used for each bet.