Provably fair

How does Provably fair system work?

The results of our games are not randomized, but calculated based on three values: the part you enter (Client seed), the part we set (Server seed) and the number of the next count (Nonce). This allows you to verify the results that we provide, by doing the calculations yourself.

Client seed - is the phrase you set, which gives you influence over the result.

Server seed - is the phrase we set, which serves the purpose of preventing you from rigging your results using the Client seed alone.

Nonce - is the number of the next count. If you were to calculate the result solely from a combination of Server seed and Client seed, then it would be the same on every count, so to counteract it, we add the next count number to these two values, which in return yields a different result on each iteration.

The additional layer of your protection is the Public hash. This is an encrypted Server seed in such a way, as to allow you to verify that the Server seed revealed to you, is the same one that was hidden. The hash function is HMAC("SHA256", secretSalt, serverSeed).

The use of the specified algorithm ensures that the results of all games are transparent and cannot be manipulated neither by us, nor our users.

provably fair
Your settings
Client seed
Server seed

This is an encrypted server seed in the form of HMAC SHA-256. You can disclose it so that you can verify your previous results.

Nonce

</> Roll verification code

const serverSeed = '*****************************';
const clientSeed = '';
const nonce = 0;

const input = Buffer.from(`${clientSeed}-${nonce}`);

  let hash = this.hmacSHA512(serverSeed, input);
  let decimal = BigInt('0x' + hash.toString('hex'));

  const max = BigInt(2) ** BigInt(512);
  const maxValid = (max / BigInt(MAX_TICKETS)) * BigInt(MAX_TICKETS);

  while (decimal >= maxValid) {
    hash = this.hmacSHA512(serverSeed, hash);
    decimal = BigInt('0x' + hash.toString('hex'));
  }

  return Number(decimal % BigInt(MAX_TICKETS)) + 1;

After revealing the Server seed, you can use this code to verify the received game result. You can run it directly in your browser using any online JavaScript Interpreter tool (like Node.js). Copy the code above and paste it into the designated field on the website, then click the "Execute" button. After the code is executed, the ticket number will be displayed, which should match the result posted on our website.

Verify roll