SkinHunter

Provably Fair

Every game outcome on SkinHunter is cryptographically verifiable. You can prove any result was fair — without trusting us.
Verified Fair System
What is Provably Fair?
Provably Fair is a cryptographic system that lets you independently verify every game result. Before any game starts, the server commits to a secret seed by sharing its SHA-256 hash. After the game ends, the full seed is revealed — and you can re-run the exact same calculation to confirm the outcome was never altered.
How it works
1
Server Seed
Server generates a secret random seed and sends you only its SHA-256 hash
2
Client Seed
Your browser contributes its own seed — you can change it at any time
3
Game Result
Result = HMAC-SHA256(serverSeed, clientSeed:nonce), mapped to the game outcome
4
Verify
After rotation, serverSeed is revealed — run the formula yourself and confirm
HMAC-SHA256( serverSeed , clientSeed + ":" + nonce )
→ hex digest → first 8 hex chars → uint32 / 232 → float [0, 1)
→ mapped to game outcome (roulette 0–100, plinko path, coin heads/tails…)
Seeds explained
Server Seed
Random 64-char hex string generated server-side before each bet. Kept secret until you rotate. Its SHA-256 hash is shown to you in advance.
Client Seed
A string you control. Combined with the server seed so the server cannot predict (and therefore cannot rig) the outcome for your specific input.
Nonce
A counter that increases by 1 on every bet. This ensures that even with the same seeds, each game produces a unique result.
Your Active Seed
Your current Server Seed Hash is committed — the server cannot change it now that you have seen it. Rotate to reveal the full server seed and get a new one.
Verify a Result
Enter the seeds and nonce from a past bet (available after rotating) to independently recalculate the outcome and confirm it was never manipulated.
Select Game
Server Seed (revealed)
Server Seed Hash
Client Seed
Nonce
Games & RNG Method
All games use the same HMAC-SHA256 core — here's how each one maps the output float to a result.
Game RNG Output How Result is Determined
Roulette float × 100 <42 → CT  |  <84 → T  |  <95 → Bait  |  ≥95 → Hunt
Coin Flip float <0.5 → Heads  |  ≥0.5 → Tails
Case Opening roll1 × 100 (rarity)
roll2 × poolLen (skin)
roll1 selects rarity tier, roll2 selects specific skin from that tier's pool
Plinko N floats (one per row) Each float: <0.5 → Left, ≥0.5 → Right. Final slot = count of Right steps
Case Battles floats per player per round Each player's case roll uses the same PF system. Highest total skin value wins.