Provably Fair, Randomization and Verify

3 min. readlast update: 04.01.2026

We do not want you to just take our word for it when it comes to security. Instead, we will explain how we guarantee the fairness of each roll.

Randomization in a nutshell

Our members can verify their bets at any time. 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 the SHA-256 hash to temporarily hide your Server Seed. 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 + Nonce

Further, 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 or greater than a million, we continue 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;
Was this article helpful?