🎰 Provably Fair

You have to learn the game's rules, and then you have to play better than anyone else.

Card games

When you open the game page the server generates a secret and a seed and reveals its hash (using HMAC SHA256 algorithm). The server secret represents randomly shuffled card deck. The server seed is a cryptographically secure random alpha-numeric string. The hash of these 2 strings helps to ensure that the initial card deck is not altered after you choose the bet amount. After the game is finished the server secret and the server seed are revealed, so you can easily calculate and verify the hash.

When you play a game you can pass an extra custom string - client seed (if it's not specified a random number is automatically generated by your browser). The server will then calculate another hash using the server secret, the server seed and the client seed. The last 5 chars of this hash (representing a hexadecimal value) will be converted to an integer. The result number will be divided by 52 (number of cards in the deck) and N cards will be cut (moved from the top to the bottom of the deck), where N is the remainder of the division. Because the client seed can not be predicted by the server the number of cards cut from the initial deck is completely random and hence you can be sure that the game result is fair.

Dice

The algorithm works in the same way except that in case of Dice game the server secret represents intially rolled random number (0-9999). When you place a bet this initial roll is adjusted by the Shift value to get the final roll.

Slots

When you open the game page the server generates a secret and a seed and reveals its hash (using HMAC SHA256 algorithm). The server secret represents the number of spins each reel should make. The server seed is a cryptographically secure random alpha-numeric string. The hash of these 2 strings helps to ensure that the initial numbers of spins are not altered after you choose the number of lines and bet amount. After the game is finished the server secret and the server seed are revealed, so you can easily calculate and verify the hash.

When you play a game you can pass an extra custom string - client seed (if it's not specified a random number is automatically generated by your browser). The server will then calculate another hash using the server secret, the server seed and the client seed. The last 5 chars of this hash (representing a hexadecimal value) will be converted to an integer (Shift number). Each reel will be spun N extra times, where N is the remainder of the division of the Shift number by initial number of spins. Because the client seed can not be predicted by the server the number of extra spins is completely random and hence you can be sure that the game result is fair.

Last updated