Provably Fair System

At FairRoll, we are committed to providing a transparent and fair gaming experience. Our provably fair system uses cryptographic hashing to ensure that neither the player nor the house can manipulate the outcome of any game. You can verify every roll yourself.

How It Works

The system is based on three key components: the Server Seed, the Client Seed, and the Nonce.

1. Server Seed

Before you place a bet, our server generates a secret random seed. We don't reveal this seed to you immediately. Instead, we show you a SHA-256 hash of it. This hash acts as a commitment, proving that the server chose its number before you placed your bet and cannot change it later.

Server Seed Hash = HASH(Server Seed)

2. Client Seed

You, the player, provide a Client Seed. You can change this seed at any time. Because you have control over this seed, you can be confident that the server is not forcing outcomes based on a predictable pattern.

3. Nonce

The Nonce is a number that increments with every bet you make using the current seed pair. It starts at 0 and increases by 1 for each roll. This ensures that you get a unique and different result for every bet.

Generating the Roll

The roll outcome is determined by creating a HMAC-SHA512 hash from the Server Seed, your Client Seed, and the Nonce. We then take a part of this hash and convert it to a number between 0 and 9999 to get your roll.

HMAC = HMAC_SHA512(Server Seed, Client Seed + "-" + Nonce)
Roll Number = ConvertToNumber(HMAC) % 10000

Verification

After each roll, we reveal the Server Seed that was used for that bet. You can then use an independent verifier (or write your own script) to recalculate the HMAC and confirm that the roll number was indeed correct. This proves that we did not manipulate the outcome.

You can change your Client Seed at any time. When you do, you also get a new hashed Server Seed for the next round of betting.