Provably Fair & Fair Play
How Apex Jackpot guarantees every game outcome is fair and independently verifiable
Our Guarantee
Every game on Apex Jackpot uses a cryptographically secure random number generator (CSPRNG). Outcomes are generated server-side using crypto.getRandomValues() — the same entropy source used in TLS certificates. We cannot predict or manipulate outcomes, and all payouts are calculated mathematically. No one can alter the result after a bet is placed.
How It Works
Server Seed Commitment
Before your game begins, we generate a server seed and give you its SHA-256 hash. You can verify we haven't changed the seed after showing you the hash.
Client Seed
You provide a client seed (or one is generated for you). This ensures only you and the server together can determine the outcome — we cannot predict or manipulate the result based on your seed.
Nonce
A nonce (incrementing counter) is combined with your seeds for each bet, ensuring every single result is unique even if you use the same seeds.
Result Generation
The game result is computed as HMAC-SHA256(server_seed, client_seed:nonce) and mapped to the game outcome. This is deterministic and cannot be manipulated.
Verification
After the round, we reveal the server seed. You can now independently verify every bet outcome using any HMAC-SHA256 calculator — confirming the result was fixed before the game started.
Return-to-Player (RTP) by Game
RTP values are theoretical long-run averages based on pure CSPRNG output with no bias.
| Game | RTP | RNG Method |
|---|---|---|
| Crash | 97% | CSPRNG / crypto.getRandomValues |
| Mines | 97% | CSPRNG / crypto.getRandomValues |
| Dice / Limbo | 99% | CSPRNG / crypto.getRandomValues |
| Plinko | 97% | CSPRNG / crypto.getRandomValues |
| Roulette | 97.3% | CSPRNG / crypto.getRandomValues |
| Blackjack | 99.5% | CSPRNG / crypto.getRandomValues |
| Hi-Lo | 95% | CSPRNG / crypto.getRandomValues |
| Dragon Tiger | 96.3% | CSPRNG / crypto.getRandomValues |
| Baccarat | 98.6% | CSPRNG / crypto.getRandomValues |
| 3-Reel Slots | 96% | CSPRNG / crypto.getRandomValues |
| Video Poker | 99.5% | CSPRNG / crypto.getRandomValues |
| Keno | 95% | CSPRNG / crypto.getRandomValues |
| Sports Betting | 95% | CSPRNG / crypto.getRandomValues |
Game-Specific Implementation
Crash
97% RTPThe crash point is derived from a server seed hashed with a client seed and nonce using HMAC-SHA256. The resulting hash is converted to a multiplier. You can verify any round using the revealed server seed after the round ends.
Mines
97% RTPMine positions are generated by hashing the server seed, client seed, and nonce. The resulting value is used to seed a Fisher-Yates shuffle of the 25-tile grid. All mine positions are provably determined before the game begins.
Dice / Limbo
99% RTPThe roll result is derived from HMAC-SHA256(server_seed, client_seed:nonce). The first 8 hex characters are converted to a float between 0 and 1, then mapped to the game range. Fully verifiable post-round.
Plinko
97% RTPEach peg path decision (left or right) is derived from successive bytes of the HMAC hash output. The full path and resulting bucket are verifiable from the seeds alone.
Roulette
97.3% RTPSpin result is generated via CSPRNG (crypto.getRandomValues). The winning number 0–36 is uniformly distributed. European single-zero rules apply.
Blackjack
99.5% RTPThe full deck is shuffled using a Fisher-Yates algorithm seeded by CSPRNG output. Cards are dealt deterministically from the shuffled deck. Optimal basic strategy yields ~99.5% RTP.
Hi-Lo
95% RTPA card 1–13 is drawn using crypto.getRandomValues. The multiplier (1.9x) is calculated based on pure probability of the guess being correct. Ties are a push — your bet is returned.
Dragon Tiger
96.3% RTPTwo cards (Dragon and Tiger) are drawn independently using CSPRNG. Dragon and Tiger pay 1.95x; Tie pays 8x. On a tie, Dragon/Tiger bets lose half the stake (not the full amount).
Baccarat
98.6% RTPFull baccarat third-card draw rules are applied. Player pays 2x, Banker pays 1.95x (5% commission), Tie pays 8x. Cards are generated via crypto.getRandomValues for each position.
3-Reel Slots
96% RTPEach reel position is independently drawn using CSPRNG. Symbol weights determine frequency (7 is rarest at weight 1; lemon is most common at weight 10). All spins are statistically independent.
Video Poker
99.5% RTPA 52-card deck is shuffled using Fisher-Yates + CSPRNG. You are dealt 5 cards, choose which to hold, then replacement cards are drawn from the remaining deck. Hand ranks follow Jacks-or-Better paytable.
Keno
95% RTP20 numbers are drawn from 1–40 using Fisher-Yates shuffle seeded by CSPRNG. The draw order is fully random. Payouts scale with how many of your chosen numbers match.
Sports Betting
95% RTPOdds are set by the house based on market data. All bets are resolved against official match results. Pre-match and live odds are clearly displayed before any bet is placed.
Verify Yourself
After any provably fair game round, you can independently verify the result using the server seed (revealed post-round), your client seed, and the nonce. The formula is:
Use any free online HMAC-SHA256 tool or a programming language of your choice. The resulting hex string, when converted, will exactly reproduce the game outcome you received.
Server-Side Enforcement
- Atomic balance updates with optimistic locking — simultaneous bets cannot double-spend your balance.
- Session guard on every game route — only one active game session per user at a time.
- Rate limiting on all game endpoints — prevents automated rapid-fire betting scripts.
- All RNG uses crypto.getRandomValues() (Web Crypto API) — never Math.random().
- All balance changes are recorded in an immutable transaction ledger.
- Jackpot contributions are tracked per-bet and accumulated transparently.
- Admin configuration changes are audit-logged with timestamp and admin ID.
About crypto.getRandomValues()
All randomness on Apex Jackpot is generated using the Web Crypto API's crypto.getRandomValues(), which draws entropy from the operating system's secure random source (e.g., /dev/urandom on Linux). This is the same entropy source used in TLS handshakes, cryptographic key generation, and password hashing. It is not predictable, not seeded by time, and cannot be reproduced without the original entropy.
The house edge for each game is built into the payout structure (e.g., multiplier caps, commission on Banker bets), not into the random number generator itself. The RNG produces uniformly distributed outputs — outcomes are never skewed at the generation level.
© 2026 ApexTechnologies Pvt. Ltd. All rights reserved.
