How Does Aviator's Provably Fair System Actually Work?
Provably Fair is the cryptographic system that separates Aviator from traditional casino games where you simply "trust" the operator. It allows any player to independently verify that each round's crash multiplier was determined before bets were placed and was not manipulated. This guide explains exactly how the system works, provides verification code, and includes an interactive tool to check any round yourself.
What Problem Does Provably Fair Solve?
In a traditional online casino, you bet and hope the software isn't rigged. There's no way to verify. The casino says "trust us" and points to a gambling license — but licenses verify business practices, not individual game outcomes.
Provably Fair eliminates this trust requirement using the same cryptographic principles that secure Bitcoin, HTTPS, and digital signatures. The system guarantees two things:
- Pre-determination: The crash point is calculated before any bets are placed. The casino commits to the result cryptographically.
- Verifiability: After the round, you can independently recalculate the crash point using publicly revealed data. If your calculation matches, the round was fair.
This works because of a mathematical property of cryptographic hash functions: they are one-way. You can easily compute the hash of any input, but given only the hash, finding the input is computationally impossible — it would take all the computers on Earth billions of years.
How Does the SHA-256 Hash Commitment Work?
The hash commitment is the mechanism that prevents the casino from changing the outcome after seeing your bet. Here's the sequence:
Timeline of a Single Aviator Round
- Server generates a random seed — a 16-character alphanumeric string (e.g.,
a3f8b2c1d9e6f7a0). - Server computes SHA-256 hash of this seed and publishes it:
SHA-256("a3f8b2c1d9e6f7a0") = "e3b0c442..." - Players see the hash — but cannot reverse it to find the seed. They place bets.
- Three client seeds are collected from three independent players.
- Crash point is calculated from
SHA-512(server_seed + client_seed_1 + client_seed_2 + client_seed_3 + nonce). - Round plays out. The plane crashes at the calculated multiplier.
- Server seed is revealed. Players can now verify: does
SHA-256(revealed_seed)match the hash from step 2?
If the hashes match, the server seed was not changed after bets were placed. If they don't match, the casino cheated — and this would be publicly provable.
"The hash commitment scheme is the same cryptographic primitive used in Bitcoin mining, TLS certificates, and digital signatures. It has been studied and attacked by the world's best cryptographers for decades. No one has broken it."
How Is the Crash Point Calculated?
Once the server seed, three client seeds, and nonce are determined, the crash point is derived deterministically. The calculation uses SHA-512:
Crash Point Calculation Algorithm
// Inputs
combined = server_seed + client_seed_1 + client_seed_2 + client_seed_3 + nonce
// Step 1: Hash with SHA-512
hash = SHA-512(combined)
// Step 2: Take first 8 hex characters (32 bits)
hex_segment = hash[0:8]
// Step 3: Convert to integer
int_value = parseInt(hex_segment, 16)
// Step 4: Apply crash formula with 3% house edge
// If int_value == 0, crash at 1x (instant crash)
// Otherwise:
raw_multiplier = (2^32) / (int_value + 1)
crash_point = max(1.00, floor(raw_multiplier * 97) / 100)
The × 97 / 100 factor is where the 3% house edge lives. Without it, the game would be perfectly fair (0% edge). With it, approximately 3% of the time the crash point is forced to 1.00x (instant crash), ensuring the house retains 3% of all wagered money over time.
The key insight: the same inputs always produce the same crash point. Anyone with the inputs can verify the output. The randomness comes from the server seed (unknown before the round) and client seeds (contributed by independent players).
How to Verify a Round (Step by Step)
You can verify any Aviator round — past or present. Here's how:
- Open the game history. In Aviator's interface, click the history icon (clock symbol) to see past rounds.
-
Select a round and note these values:
- Server Seed (revealed after round ends)
- Server Seed Hash (shown before the round started)
- Client Seed 1, Client Seed 2, Client Seed 3
- Nonce (round number)
- Crash Point (the actual result)
-
Verify the hash commitment. Compute
SHA-256(Server Seed). It must match the Server Seed Hash. If it doesn't, the round was tampered with — report it immediately. - Recompute the crash point. Use the algorithm above with all the seeds and nonce. Your result should match the actual Crash Point ± rounding.
Use our interactive tool below or the code examples to perform these calculations.
Interactive Hash Verification Tool
Provably Fair Verifier
Enter the revealed server seed and the hash that was shown before the round. This tool computes SHA-256 of the seed and checks if it matches.
Enter all seeds and the nonce to recalculate the crash point independently.
Verification Code Examples
You don't need to trust our tool — here's how to verify using standard tools on your own computer.
Command Line (Linux/Mac)
# Step 1: Verify hash commitment
echo -n "a3f8b2c1d9e6f7a0" | shasum -a 256
# Output should match the pre-round hash
# Step 2: Calculate crash point
COMBINED="server_seedclient1client2client3nonce"
HASH=$(echo -n "$COMBINED" | shasum -a 512 | cut -d' ' -f1)
HEX=${HASH:0:8}
echo "First 8 hex chars: $HEX"
INT_VAL=$((16#$HEX))
echo "Integer value: $INT_VAL"
# Apply crash formula in Python (bash can't handle the precision)
python3 -c "v=$INT_VAL; print(max(1.0, int((2**32/(v+1))*97)/100))"
JavaScript (Browser Console)
// SHA-256 hash verification
async function verifySeed(serverSeed, expectedHash) {
const encoder = new TextEncoder();
const data = encoder.encode(serverSeed);
const hashBuffer = await crypto.subtle.digest('SHA-256', data);
const hashArray = Array.from(new Uint8Array(hashBuffer));
const computed = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
return computed === expectedHash.toLowerCase();
}
// Usage:
verifySeed('a3f8b2c1d9e6f7a0', 'expected_hash_here')
.then(match => console.log('Hash matches:', match));
Python
import hashlib
def verify_hash(server_seed: str, expected_hash: str) -> bool:
"""Verify SHA-256 hash commitment."""
computed = hashlib.sha256(server_seed.encode()).hexdigest()
return computed == expected_hash.lower()
def calculate_crash(server_seed: str, client1: str,
client2: str, client3: str, nonce: int) -> float:
"""Calculate crash point from seeds and nonce."""
combined = f"{server_seed}{client1}{client2}{client3}{nonce}"
hash_hex = hashlib.sha512(combined.encode()).hexdigest()
hex_segment = hash_hex[:8]
int_value = int(hex_segment, 16)
if int_value == 0:
return 1.00
raw = (2**32) / (int_value + 1)
crash = max(1.00, int(raw * 97) / 100)
return crash
# Example usage:
print(verify_hash('a3f8b2c1d9e6f7a0', 'your_expected_hash'))
print(calculate_crash('server', 'client1', 'client2', 'client3', 12345))
Understanding the Probability Formula
The Provably Fair algorithm produces crash points following a precise mathematical distribution. The probability of the game reaching any multiplier m is:
P(reaching m) = 0.97 / m
Where m ≥ 1.00 and 0.97 reflects the 3% house edge
This formula has verifiable implications:
| Multiplier | Probability of Reaching | What This Means |
|---|---|---|
| 1.00x | 97.0% | 3% of rounds crash instantly — this is the house edge |
| 1.50x | 64.7% | About 2 in 3 rounds reach 1.5x |
| 2.00x | 48.5% | Nearly a coin flip to reach 2x |
| 3.00x | 32.3% | About 1 in 3 rounds |
| 5.00x | 19.4% | About 1 in 5 rounds |
| 10.0x | 9.7% | About 1 in 10 rounds |
| 50.0x | 1.94% | About 1 in 50 rounds |
| 100x | 0.97% | About 1 in 100 rounds |
You can test this distribution yourself: collect 1,000+ round results from the game history and compare the observed frequencies to the formula predictions. They will converge. Our bankroll calculator uses this exact formula for all its calculations.
What Provably Fair Does NOT Guarantee
Provably Fair is powerful, but it's important to understand its boundaries:
- Does NOT eliminate the house edge. The 3% edge is built into the formula. Provably Fair ensures the edge is exactly 3%, not more.
- Does NOT guarantee you'll win. Each round is independent. Variance means you can have long losing streaks that are mathematically expected.
- Does NOT prevent the casino from refusing payouts. Provably Fair verifies game outcomes, not business practices. A casino could still refuse withdrawals for unrelated reasons.
- Does NOT apply to non-Provably Fair games. Traditional slots and table games at the same casino may not offer this verification.
- Does NOT mean the RNG is perfect. The system is only as strong as its implementation. Bugs in the code could theoretically compromise fairness, though the algorithm itself is sound.
For a complete analysis of what the house edge means for your bankroll, see our strategy analysis and bankroll calculator.
Provably Fair FAQ
Can Aviator change the crash point after I place my bet?
No. The server seed is cryptographically committed via SHA-256 hash before any bets are placed. Changing the server seed after commitment would produce a different hash, which players can verify. This is the same principle that secures Bitcoin transactions — the casino cannot retroactively alter results without detection.
What is the difference between SHA-256 and SHA-512 in Aviator?
SHA-256 is used for the hash commitment — the casino publishes SHA-256(server_seed) before the round to prove they cannot change it later. SHA-512 is used for the actual crash point calculation — SHA-512(server_seed + client_seeds + nonce) produces the hash from which the crash multiplier is derived. Both are one-way functions: knowing the output tells you nothing about the input.
Why does Aviator use three client seeds instead of one?
Using three independent client seeds from three different players ensures that no single party — not the server, not any individual player — can unilaterally determine the outcome. Even if the server colluded with two players, the third honest player's seed would make the result unpredictable. This is a multi-party computation approach to fairness.
Does Provably Fair mean the game has no house edge?
No. Provably Fair guarantees that results are predetermined and verifiable — the casino cannot manipulate individual rounds. The 3% house edge is built into the crash point formula itself (the 0.97 factor in P(m) = 0.97/m). Provably Fair ensures the house edge is exactly 3% as claimed, not higher. It is transparency, not elimination of the edge.
Can I verify old rounds or only the current one?
You can verify any historical round. Aviator's game history provides the server seed, client seeds, and nonce for all past rounds. The server seed is only revealed after the round ends, but once revealed, you can verify it against the pre-round hash commitment at any time. Many players verify random historical rounds to build confidence in the system.
Want to understand how scammers falsely claim to "crack" this system? Read our predictor scam exposé. For practical playing advice based on the math, see our strategy guide.