Luckydice's logo.

The Only 100% Provably Fair Crypto Dice Casino

Luckydice is the only crypto dice casino that offers 100% Provably Fair games. With just one click, you can check and verify every bet for extra peace of mind!
Enjoy Provably fair at BitKong
Crypto Gambling Foundation logo.

What is Provably Fair?

When a casino is Provably Fair it means that every bet can be verified by the player, ensuring the transparency of all our games. The players don’t need to rely on third parties because they have the tools and information they need to analyze the transparency of every outcome. At Luckydice, you can check the fairness of every dice roll with our in-game calculator or use the open-source version.

Understanding Our Provably Fair System

We continuously change the perception of online gambling by applying the revolutionary concept of provably fair gambling.

OVERVIEW

Luckydice is a provably fair online crypto casino. We introduced a new generation of online casinos where players can be sure that the results are not manipulated. Luckydice's verification procedure allows users to verify the integrity of every bet.

OUR PROVABLY FAIR COMPONENTS

The Server Seed is generated before the Client Seed, ensuring that it is impossible to generate a Server Seed in favor of Luckydice. This procedure is not possible to prove if the user is visiting the website for the first time.

We advise users to randomize (change) the Client Seed during their first visit. At the moment of the bet, the current Server Seed is hidden from the user in order to prevent a prediction of the result. Before the bet, a Hash (SHA256) is shown instead of the Server Seed to guarantee that it will not be replaced by Luckydice.

The Current Server Seed is used for all the bets that were made after the last Server Seed randomization and it will still be used until the user decides to verify the bet(s). Before the user starts the verification, he must also randomize the current Server Seed to generate a new one for the next bet(s).

After the randomization is over, the previous Server Seed will be opened and all bets made with that Server Seed can be checked. After that, the user doesn't have to change the Client Seed, but it is recommended.

Server Seed is a random sequence of 64 symbols (numbers and letters) generated by a server.

▸ The Client Seed is a random sequence of symbols specified by the user (or generated by the user's browser).

A nonce is a number of bets made with a certain Server Seed. This number is initially 0 and increases by one after each bet.

After Server Seed is changed the Nonce resets to 0. The row number of every ticket starts at 0 and increases by one with every row in a ticket.

GENERATING RANDOM OUTCOMES

Server seed, Client seed, Nonce, Round number, and Zero are used to create provably fair randomly generated outcomes.

The output of random number generation is 32 random bytes, generated using the HMAC_SHA256(K,m) function. This function uses a given Server Seed (K) and a message (m).

The message is created by concatenating Client seed, Nonce, Round number of the bet, and zero. m = "{client_seed}:{nonce}:{round_number}:0".

CREATING RESULTS

To create random results (events) that happen during the game a special formula is used:

CLASSIC DICE

The first eight bytes of HMAC_SHA256(K,m) function's result need to be converted into decimal values (0-255 each).

The first byte is divided by 256 (256 raised to the power of 1), the second byte is divided by 65,256 (256 raised to the power of 2), the third byte is divided by 16,777,216 (256 raised to the power of 3), a fourth byte is divided by 4,294,967,296 (256 raised to the power of 4). The sum of the divisions is an equally distributed value greater than or equal to zero, but smaller than one.

The first dice result is calculated by multiplying that value by 6 and taking only the full part (floor) of that figure and then adding 1. Operation is repeated with the next four bytes to get the result of the second dice.

DIGITAL DICE

The first four bytes of HMAC_SHA256(K,m) function's result need to be converted into decimal values (0-255 each).

The first byte is divided by 256 (256 raised to the power of 1), the second byte is divided by 65,256 (256 raised to the power of 2), the third byte is divided by 16,777,216 (256 raised to the power of 3), a fourth byte is divided by 4,294,967,296 (256 raised to the power of 4).

The sum of the divisions is an equally distributed value greater than or equal to zero, but smaller than one. The final game result is calculated by multiplying that value by 10,000 and taking only the full part (floor) of that figure and then dividing by 100.

BEST PRACTICES

  1. Change the Client Seed when you start playing on the website.
  2. Copy and keep Server Seed hash and Client Seed separately.
  3. Don’t use one Server Seed for multiple bets. Change the Server Seed every once in a while and verify your bets (at least a few of them).
  4. After every randomization of the Server Seed, also randomize (change) the Client Seed.
  5. When you manually create the Client Seed do not use simple, easily predictable words. It is better to generate it with a cryptographic random number generator by clicking the “Refresh” button on the Fairness tab.

FINAL THOUGHTS

At Luckydice, we're committed to fair gaming. Rest assured, all our current and future games are and will continue to be, provably fair. We aim to provide peace of mind to our players so they can focus on the thrill of the game, relishing in our various bonuses and events.

If you have any questions about our provably fair algorithm or if you need technical assistance, we're just one message away. Remember, Luckydice is all about enjoying the game. So dive in, and have fun!