Provably Fair
Provably fair refers to an algorithm used to prove the fairness of games. Additionally, someone might refer to games as provably fair if they happen to allow such algorithms to verify their fairness.
After each round, a player can access the game’s hashes and verify everything that occurred during the game.
The biggest benefit of provably fair games is that no third-party is required to verify the fairness of games.
Case Verifier
The operation of our system is as follows: We create a random string of characters (the server seed) prior to each game and display its hash to the user (the server hash). Next, the user selects a unique random string (client seed), which is sent to the server. The server seed and client seed are used to determine the game result, an integer between 0 and 1,000,000. Users can confirm that the outcome of the game was not tampered with by determining whether the hashed server seed and server hash are equal, and whether the tickets that were generated match the items that were dropped.
Case Battle Verifier
We create a random string of characters (the server seed) prior to each game and display its hash to the users. The users then select and send the server their own random strings (client seeds). Right before the start of the game we get the hash of the next Solana block which is created right at that moment. The server seed, the client seed each user provided and the Solana block hash are used to generate the drops for each user when the battle begins. Users can confirm that the outcome of the game was not manipulated by determining whether the server hash and the hashed server seed are equal, whether the tickets that were generated match the items that were dropped from each case and if the Solana hash is real and is assigned to a block that was created right before the game started.
Jackpot Verifier
We create a random string of characters (the server seed) prior to each game and display its hash to the users. Right before the end of the jackpot, we wait for the next Solana block and use it's hash. A winning ticket is selected at the jackpot's conclusion using the server seed, Solana block hash and the total number of tickets.
Coinflip Verifier
We create a random string of characters (the server seed) prior to each game and display its hash to the users. Right before the end of the coinflip we wait for the next Solana block and use it's hash. Based on the server seed, Solana block hash and the total number of tickets, a winning ticket is selected at the conclusion of the coinflip.
Roulette Verifier
We create a random string of characters (the server seed) prior to each game and display its hash to the users. Right after the bets were closed, we wait for the next Solana block and use it's hash. Number between 1 and 25 is selected at the roulette's conclusion using the server seed and Solana block hash.
Blackjack Verifier
We generate a random string of 64 characters (the server seed) prior to each game and display its hash to the users. The server seed is used to determine the outcome of the game. Users can confirm that the outcome of the game was not manipulated by determining whether the server hash and the hashed server seed are equal.
Crash Verifier
Before betting opens, we create a random server seed and show its SHA-256 hash. The seed itself is revealed when the round crashes, or when a round is voided.
When bets close, the target Solana slot is fixed at the current slot + 4. The round uses the hash of the first block produced at or after that slot. Skipped slots are simply absent, nobody chooses the block and it is never re-rolled.
The server seed and the block hash decide the round:
h = SHA256(serverSeed + ":" + blockHash), written in hex.n1,n2andn3are the first, second and third groups of 13 hex characters ofh, each read as a 52-bit integer.- Crash point:
M = max(1.00, floor(100 × rtp / ((n1 + 1) / 2^52)) / 100). A crash point of 1.00x ends the round the instant the flight starts. - Supply drop: the round has one when
n2 < 0.2 × 2^52. Its drop point isT = floor(100 × 2 × 5^(n3 / 2^52)) / 100, between 2.00x and 9.99x, and it lands only whenT < M. A drop that lands adds +0.30x to every bet still live at that moment.
The crash point uses the house edge stored for the round, which its round page shows, through rtp:
rtp = (1 − edge) / (1 + 0.06 × 0.2485339738238448), rounded down to 8 decimals, where edge is the value stored for the round.
The divisor in rtp pays for the supply drop's average bonus out of the curve, so the whole game, drops included, returns 1 − edge.
If the block cannot be fetched in time, or the server stops before the flight, the round is void: every stake is returned and the seed is still revealed. If the server fails during a flight, bets whose auto cash-out target was reached before the failure are paid. The others are returned, unless the round had already crashed, in which case they are lost. A manual cash-out that was received but not yet processed when the server failed is honoured when its record survives; otherwise it is returned or lost like the other bets.
Every round has its own page at /crash/ followed by the round number. It shows the seed, the block with a Solscan link, the edge stored for the round and a verifier that runs in your browser. The verifier below runs the same formulas.
Giveaway Verifier
Before each giveaway starts, we generate a random server seed and display its SHA256 hash to all users. This ensures the server seed is committed and cannot be changed later. When the giveaway ends, we reveal the original server seed so anyone can verify that the hash matches and that the winning ticket was selected fairly using the server seed and the total number of entries.