Understand seeds, hashes, nonces, and post game verification. Learn how to audit every bet and avoid opaque RNG. Then test it on Duel Originals with thin or zero edge windows.
Provably fair is a cryptographic commitment system used by modern crypto casinos. Before you bet, the casino publishes a one way hash of its server seed. You may set your own client seed. A nonce counts bets. After the round, the raw server seed is revealed. Anyone can recompute the outcome from server seed plus client seed plus nonce and confirm it matches the hash shown earlier. No retroactive tampering is possible.
Random value generated by the casino and pre committed via hash.
User controlled value that mixes into every outcome.
Monotonic counter. Increments 1 per bet to keep rounds unique.
// Example pseudo in JS style
const serverSeed = "RAW_SERVER_SEED";
const clientSeed = "your-client-seed";
const nonce = 42;
// Often HMAC is used to bind inputs
const h = hmacSHA256(serverSeed, `${clientSeed}:${nonce}`);
// Convert first 52 bits to a fraction
const r = parseInt(h.slice(0,13),16) / 0x1_0000_0000_0000;
// Map to game
const diceRoll = Math.floor(r * 10000) / 100; // 0.00 to 99.99
Exact formulas vary by game type and provider. Casinos publish their mapping for public audit.
One way digest. Example: SHA-256. Given a hash, you cannot recover the input. Used for pre commit.
Hash based message authentication code. Uses a key plus message to prevent chosen input tricks. Often key is serverSeed and message is clientSeed plus nonce.
Digest bits are converted to a uniform number in [0,1). Then mapped to dice, crash, card indices, or grid coordinates without bias.
| Game type | Mapping | Notes |
|---|---|---|
| Dice | Uniform number to 0.00 – 99.99 | Compare to under or over threshold. House edge can be thin or zero in windows. |
| Crash | Deterministic formula to multiplier curve | Common form: floor based on digest ensures no infinity spikes. Verify cashout point post round. |
| Mines | Seeded shuffle of 25 tiles with chosen mine count | Board is fixed before first click. You can reconstruct exact mine positions after reveal. |
| Plinko | Sequence of left or right steps through rows | Each step uses digest bits. Final slot determines multiplier. |
| Blackjack | Seeded shuffle of a deck index | Reveal allows deck reconstruction and hand audit. Edge depends on player decisions. |
# Tiny Python snippet for a dice roll reconstruction
import hmac, hashlib, math
server = b"RAW_SERVER_SEED"
client = "your-client-seed"
nonce = 7
msg = f"{client}:{nonce}".encode()
h = hmac.new(server, msg, hashlib.sha256).hexdigest()
r = int(h[:13], 16) / float(0x1_0000_0000_0000)
roll = math.floor(r*10000)/100
print(roll)If your recomputed result differs from the on site result, stop and escalate to support with seeds, nonce, and bet IDs.
Duel Originals run at razor thin edge with full post game verification. Some modes toggle 0 percent edge with caps to manage variance. It is a clean testbed for provably fair.
| Dimension | Provably fair | Opaque RNG |
|---|---|---|
| Pre commit | Hash of server seed shown | None |
| User control | Client seed selectable | Not applicable |
| Audit | Public verification anytime | Third party lab only |
| Transparency | Open formulas and mapping | Hidden implementation |
| Disputes | Seeds and nonce settle facts | Trust the provider |
Wrong. The pre commit hash would fail to match. Any change becomes obvious when you recompute the hash.
Wrong. Client seed mixes into the HMAC. Changing it shifts the entire outcome stream for your account.
Set your client seed, play with thin or zero edge, verify every round. It is the fastest way to learn by doing.
Gambling is entertainment. Bet responsibly. Use self exclusion if needed.