Fairness
Original Dice & Range Dice Fairness
We do not want you to just believe our word when it comes to security. Instead, we are going to explain how we guarantee the fairness of each roll.
Randomization in a nutshell
Our members can verify their bets anytime they want. For this, they should deduce a roll number.
If you add a third element – Nonce – to the pair of Client Seed and Server Seed, you’ll be able to deduce the bet’s result. Sure, if you reveal your results ahead of time, it would ruin the whole process. Therefore we use SHA-256 hash to hide your Server Seed temporarily. Each Seed is revealed after the last randomization took place. This provides our users with the possibility to verify their rolls transparently.
How the roll numbers are calculated
The rules of the game stipulate that we need to know the roll number. To receive it, we should make some calculations. Combine your bet number, Server, and Client Seeds. As a result, we get a figure between 0 and 9,999.
This is how it works:
combination = Server Seed + Client Seed + NonceFurther, we need a 128-character hex string using the SHA-512 hash:
hash = SHA512(combination)At this point, we convert 5 characters of that hash to a so-called decimal number. Then, three scenarios are possible. If it is equal to a million or more, we continue the same using the next 5 characters. It happens up to 25 times. If none of these trials gave a result of less than a million, the last 3 characters will be converted to your roll number. In the opposite case, we divide it by 10K and consider your roll outcome.
How the code looks like
Use our online verifier or take a look at the code example to see how we verify our bet:
function getRoll(serverSeed, clientSeed, nonce) {
var hash = sha512(serverSeed + clientSeed + nonce);
var index = 0;
do {
var lucky = parseInt(hash.substr(index, 5), 16);
index += 5;
} while (lucky >= 1000000);
return lucky % 10000;
}