Provably Fair
Every game result can be mathematically verified. The platform cannot cheat.
The Simple Version
- Before you bet: We commit to a hidden result (you see the hash)
- You bet: Your choice is locked in
- After the game: We reveal the secret, you can verify it matches the hash
We can't change the result after your bet because the hash would be different.
Why This Matters
In traditional online gaming, you trust the platform. With provably fair:
- ✅ Results are determined before you bet
- ✅ The platform cannot change results
- ✅ You can verify any game was fair
How to Verify
Quick Method
Use the bot command:
/verify [gameId]
Manual Method
After each game, you can access:
- Server Seed: The revealed secret
- Server Seed Hash: What you saw before betting
- Client Seed: Your randomness input
- Nonce: Game number
Verify:
- Hash the server seed → should match the hash shown before
- Combine seeds → should produce the game result
Technical Details
For those who want to verify themselves.
The Algorithm
// Combine all inputs
combined = SHA256(serverSeed + clientSeed + nonce + BLOCK_HASH_SALT)
// Convert to roll (0.0 to 1.0)
hex = combined.slice(0, 8)
roll = parseInt(hex, 16) / 0xffffffff
Game Result Mapping
| Game | How Roll Becomes Result |
|---|---|
| Coin Flip | roll < 0.5 = Heads, else Tails |
| Dice | roll × 100 = Roll value (0-99.99) |
| Blackjack | roll × 52 = Card index |
| The Styx | roll × lanes = Death position |
Blockchain Salt
To prevent any manipulation, a constant salt derived from a Solana block hash is included:
- 🔒 Immutable — Block hash cannot be changed
- 📢 Public — Anyone can verify on Solana
- 🎲 Unpredictable — Unknown when system was built
FAQ
Can I choose my own client seed?
Yes! Add clientSeed:yourSeed to any game command.
What if I don't provide a seed?
One is generated randomly for you. Still provably fair.
Why should I trust SHA-256?
It's the same algorithm securing Bitcoin. Mathematically impossible to fake.