Fairness & Random Number Generation
Version 1.1 — Last updated: 2026-10-09. Operated by JOKR Labs.
This page forms part of the Terms of Service and explains, game by game, how the outcome of each JOKR Original is generated, what is recorded, and what you can check yourself. The English version prevails over any translation.
Operator entity details will be published here upon completion of licensing.
1. Scope
1.1. "JOKR Originals" are the six games operated on our own servers: JOKR Crash, JOKR Mines, JOKR Spin, BlackJOKR, JOKR Duel and JOKR Ballz. Everything below describes these six games only.
1.2. Slots, live tables and other third-party titles run on the studio's own servers. Their random number generation is the studio's responsibility and is not described here.
1.3. We use the words precisely. A round is "commit-reveal" when a cryptographic commitment to the outcome is published before you bet and the secret values are disclosed after the round, so you can recompute the outcome yourself. A round is not provably fair when no such commitment exists, whatever the quality of the random source. Four of the six Originals are commit-reveal today: Crash, Mines, Spin and Duel against the house (section 2).
2. Summary
| Game | How the outcome is produced | What you can verify yourself |
|---|---|---|
| JOKR Crash | Commit-reveal: SHA-256 commitment published before betting; crash point derived from HMAC-SHA256 of two server seeds | Recompute the hash and the crash point from the disclosed seed and salt (verifier below) |
| JOKR Mines | Commit-reveal: SHA-256 commitment published at the start; mine layout derived from an HMAC-SHA256 stream | Recompute the hash and the mine positions from the disclosed seed and salt (verifier below) |
| JOKR Spin | Commit-reveal: SHA-256 commitment of the server seed published before the spin; pocket derived from HMAC-SHA256 of that seed among 37 equiprobable pockets | Recompute the hash and the pocket from the disclosed seed (section 5) |
| BlackJOKR | Six-deck shoe shuffled with a cryptographic generator; the dealer always takes the next card of the shoe (section 6) | Nothing cryptographic; each hand is recorded server-side |
| JOKR Duel | Against the house: commit-reveal — every house card is derived from a secret seed fixed before the match, whose SHA-256 hash is shown before you play; against a player: both players' choices | Recompute each house card from the disclosed seed (section 7) |
| JOKR Ballz | Server-side physics simulation with non-cryptographic random perturbations | Nothing cryptographic; each match is recorded server-side |
3. JOKR Crash
3.1. Before each round, the server generates two secret values, a 32-byte seed and a 32-byte salt, and publishes their commitment hash = SHA-256(seed + salt). The hash is sent to every connected player when the 10-second betting window opens, before any bet is accepted. It is visible in the game behind the 🔐 Fair button next to the round number.
3.2. The crash point is fixed by those two values. It is computed as follows, and nothing else influences it:
h= the first 13 hexadecimal characters (52 bits) ofHMAC-SHA256(key = seed, message = salt), read as an integer;crash = floor( 100 × (1 − edge) × 2^52 ÷ (2^52 − h) ) ÷ 100, withedge = 3.6 %for rounds whose salt starts withv2-, andedge = 10 %for older rounds whose salt has no such prefix (the prefix is part of the salt, so it is covered by the hash published before the round);- the result is never below 1.00× and is capped at 1,000×.
3.3. The house edge is built into the distribution: the expected return of a bet cashed out at a target t (in steps of 0.01) is (1 − edge) × t ÷ (t + 0.01) of the stake, always below 96.4 %, before the per-round payout cap displayed in the game.
3.4. After the crash, the seed and the salt are broadcast to the players. The round record (hash, seed, salt, crash point, timestamps) is kept server-side, together with every bet placed on it. You can retrieve the seeds of any finished round from its hash with the verifier below; seeds of a round still in progress are never disclosed.
3.5. What this does and does not prove. Recomputing the hash shows that the seeds, and therefore the crash point, were fixed before betting opened and were not changed afterwards. Because both values are generated by the server and you do not contribute a seed of your own, the protocol does not prove that the server could not have selected its seeds; it is commit-reveal, not a full client-seed scheme.
4. JOKR Mines
4.1. At the start of each round, the server generates a 32-byte seed and a 32-byte salt and sends you their commitment hash = SHA-256(seed + salt) together with the grid. The layout is fixed at that moment; no later action of yours moves a mine.
4.2. The mine layout is derived from the two values on a 25-tile grid with 1 to 20 mines, as follows:
- a stream of 32-bit numbers is produced by
HMAC-SHA256(key = seed, message = salt + i)fori = 0, 1, 2, …, read eight hexadecimal characters at a time; - the tiles
0 … 25 − 1are shuffled with a Fisher-Yates shuffle fed by that stream, using rejection sampling to avoid modulo bias; - the first n shuffled tiles are the mines, where n is the number of mines you selected.
4.3. The multiplier after each safe tile is the exact inverse of the probability of reaching it, reduced by a house edge of 4 % (games whose salt starts with v2-; 10 % for older games whose salt has no such prefix), rounded down to 0.01, and is shown in the game before you reveal.
4.4. When the round ends (a mine is hit or you cash out), the seed, the salt and the full mine layout are sent to you and shown in the 🔐 Provably Fair panel of the game. The round record (hash, seed, salt, mine positions, revealed tiles, result) is kept server-side.
4.5. The same limitation as in 3.5 applies: you can verify that the layout was fixed before you played, not that the server could not have selected its seeds.
5. JOKR Spin
5.1. JOKR Spin is a European roulette: 37 pockets (0–36), standard payouts, so that every bet type returns 97.3 % of the stake on average.
5.2. Before each spin, the server holds a secret 32-byte seed for your next spin and shows you its commitment hash = SHA-256(seed) (ℹ️ panel of the game, or the nextHash returned with the previous spin). The pocket is HMAC-SHA256(key = seed, message = "jokr-spin:" + i) read as 32-bit big-endian words, rejecting any word ≥ floor(2^32 ÷ 37) × 37 so that no pocket is favoured, and reduced modulo 37. Each seed is used for exactly one spin: it is replaced atomically when you spin, so two spins can never share a seed.
5.3. After the spin, the seed is disclosed in the response and in the ℹ️ panel together with the pocket, and the spin record (seed, hash, bets, pocket, payout) is kept server-side.
6. BlackJOKR
6.1. Each hand is dealt from a fresh 6-deck shoe shuffled on our server with a cryptographic generator (Fisher-Yates with rejection sampling, fed by the operating system's secure random source). The shoe is stored encrypted with the game state and is never sent to your device before the cards are dealt.
6.2. Dealer draw rule. The dealer draws to 16 and also draws on soft 17; the dealer stands on hard 17 and on 18 or more (hands dealt before 2026-10-08 under the previous rules: the dealer stood on all 17s). The dealer always takes the next card of the shoe: no card is ever put back or skipped, for the dealer or for you. The house advantage comes only from the written table rules (blackjack pays 1:1, dealer draws on soft 17, doubles on 10 or 11 only, one split, no hole-card check), published on the table, in the ℹ️ panel and on the Game Rules page.
6.3. No commitment is published before the hand, so BlackJOKR is not provably fair. Each hand (bets, cards, result) is recorded server-side.
7. JOKR Duel
7.1. JOKR Duel is a card-colour duel (blue beats red, red beats orange, orange beats blue). Two modes exist.
7.2. Against the house. Before the match starts, the server generates a secret 32-byte seed and sends you its commitment hash = SHA-256(seed). The house card of round n is HMAC-SHA256(key = seed, message = gameId + ":" + n + ":" + i) read as 32-bit big-endian words, rejecting any word ≥ floor(2^32 ÷ 3) × 3, reduced modulo 3 (0 = red, 1 = blue, 2 = orange): each card has exactly a 33.33 % chance, independently of what you play. The seed is disclosed when the match ends (ℹ️ panel), so you can recompute every house card. The house advantage comes only from the written house fee on the pot (Game Rules page).
7.3. Against another player. Each round is decided only by the cards the two players actually choose. If a player does not act within the time limit, the server plays a random card for them.
7.4. Against the house, the commitment of 7.2 makes every house card checkable once the seed is disclosed; the verifier on this page does not yet cover Duel, so the check is manual (any HMAC-SHA256 tool). Player-versus-player rounds involve no server draw at all. Every round result is recorded server-side.
8. JOKR Ballz
8.1. JOKR Ballz is a race: each participant enters a number of balls, and the first ball to reach the finish wins the whole pot. The race is a physics simulation run on our server (rigid-body engine); the server applies small random perturbations to ball velocities during the race using the runtime's non-cryptographic generator. The more balls you enter, the more chances you have to be first.
8.2. If no ball has reached the finish after 3 minutes, the server picks the winner at random with a probability proportional to each participant's number of balls.
8.3. House-operated participants may be present in a match. Their number of balls is set by the server between 1.2× and 1.5× the balls entered by the human player, capped at 80 balls.
8.4. No commitment is published before a match, so JOKR Ballz is not provably fair. Each match (participants, balls, winner, prize) is recorded server-side.
9. Using the verifier
9.1. The verifier on this page recomputes a finished JOKR Crash or JOKR Mines round in your browser with the same formulas as our game servers. Nothing you type is sent to us.
9.2. Paste the server seed and the salt disclosed by the game (and, for Mines, the number of mines), optionally the hash announced before the round, and press Verify locally. The result shows the recomputed hash, whether it matches the announced hash, and the crash point or the mine positions.
9.3. If you only have the hash, the Look up button fetches the seed and the salt of that round from our records, provided the round has already ended. Rounds in progress are never disclosed.
9.4. JOKR Spin and JOKR Duel against the house are commit-reveal too: they publish a commitment before play and disclose their seed afterwards, but the verifier does not cover them yet. Recompute them manually with any HMAC-SHA256 tool, following sections 5 and 7. BlackJOKR and JOKR Ballz publish no seed at all (sections 6 and 8), so there is nothing to verify for them.
10. Records and review
10.1. Every round of every Original is recorded on our servers with its inputs and outcome (sections 3 to 8), together with the corresponding balance movements in our ledger.
10.2. For JOKR Mines, an automatic monitor compares the amounts paid out with the amounts wagered since the last restart and alerts the operator when the observed return exceeds the expected band. For the other games, the round records allow a review after the fact.
10.3. If you believe a round was settled incorrectly, contact JOKR Support — the in-app support chat ("Contact support" in the footer of any main tab) or [email protected] with the game, the time of the round and, for Crash or Mines, the hash. We will review the server record and reply.