Provably Fair Gaming at Cashy
Provably Fair Roulette
Most BGaming games at Cashy are provably fair. That means you don't have to take our word for it — you can verify every single result yourself, right after it happens. No middleman. No blind trust. Just cold, hard math.
Here's what that actually means: we use a cryptographic system that makes it genuinely impossible — for us or for you — to know how a round will land before it starts. You get a real, visible say in every spin. We hand you a fingerprint of the upcoming result before the game begins. And once it's over, you can check that we played it exactly straight. Here's the full breakdown:
1. We use a computer model for the Roulette Wheel and decide on a random spin to apply to it.
We lay out the roulette wheel as an ordered list of tiles, then pick a random position for it to stop. To do that, we use the Mersenne Twister — the gold standard of pseudorandom number generators. Think of it as the most honest dealer in the building. We call that landing position the Result.

2. We show you a 'fingerprint' of the spin and a random number we call 'Secret'.
We call this Hash(Result + Secret). We generate a random Secret value to pair with the result, then run both through the SHA-256 Hashing Algorithm. What comes out is a fingerprint that's completely unique to that exact combination. You can't work backwards from the fingerprint to figure out the result — but after the game, you can use it to confirm we never pulled a switcheroo.

3. We get you to have some input on the game.
You get to give the wheel a nudge. Pick any number from 0 to 36 — or 0 to 37 on American roulette — and we'll push the wheel forward that many spots when you spin. Your number, your call. Or let us pick one randomly. Either way, it's your fingerprints on the outcome.

4. You play the game!
Place your bets, hit spin, and enjoy every second of it.
5. We show you the actual data used to generate your game!
When the round wraps up, we put everything on the table: the spin data (Result + Secret), the fingerprint we showed you before things kicked off (Hash[Result + Secret]), your input, and the final result. Verify it all right here using our built-in widget — or take the numbers to any third-party SHA-256 calculator you trust. We've got nothing to hide.

6. Check the effect you had on the game!
Want to see exactly how your number changed things? Grab your client seed, find the tile the wheel was originally going to stop on in the Result + Secret data, count forward that many positions, and you'll land right on the final result. It's all traceable — and all yours to check.
Provably Fair Pocket Dice
To deliver genuinely provably fair Pocket Dice, Cashy runs three of the most trusted cryptographic tools in the business: the SHA-256 Hashing Algorithm, the Mersenne Twister, and the Fisher-Yates shuffle. Together, they make it flat-out impossible to mess with outcomes.
Technical Implementation
We generate 30 random numbers between 1 and 6, plus a random server seed. Those numbers get hashed immediately using hash("sha256", json_encode($initial_numbers) . $server_seed) — and that hash goes public right away. When your game launches, your browser creates a client seed on the fly using JavaScript. Then the initial numbers get reshuffled via Fisher-Yates using your client seed. Every step is on the record. Every step is yours to audit.
Code used for hashing initial numbers:
/**
* Calculates hash of array with server seed
* @param array $initialNumbers
* @param string $serverSeed
* @return string
*/
function hashInitialNumbers(array $initialNumbers, $serverSeed)
{
return hash('sha256', json_encode($initialNumbers) . $serverSeed);
}Code used for shuffling:
/**
* Shuffles array with client seed
* @param array $items
* @param string $seed
* @return array shuffled array
*/
function fisherYatesShuffle(array $items, $seed)
{
$mt_seed = intval(substr(hash('sha256', $seed), -8), 16);
mt_srand($mt_seed);
$count = count($items);
for ($i = $count - 1; $i > 0; $i--)
{
$j = mt_rand(0, $i);
$tmp = $items[$i];
$items[$i] = $items[$j];
$items[$j] = $tmp;
}
return $items;
}
$finalShuffle = fisherYatesShuffle($initialNumbers, $clientSeed);
$result = array_slice($finalShuffle, 0, 2);Provably Fair Cards
1. We generate a shuffled deck using modern shuffling techniques, as well as another number we call Secret.
Secret is a server-generated number used to build the hash — more on that in a second. The deck gets shuffled using the Fisher-Yates shuffle — basically the digital equivalent of pulling cards blindly from a hat. And to make sure every pick is genuinely random, we use the Mersenne Twister throughout. That shuffled deck? We call it the Result.

2. We show you a 'fingerprint' of the shuffled deck and the 'Secret'.
This is your Hash(Result + Secret). We create it by running the deck and Secret together through the SHA-256 Algorithm. The fingerprint is tied exclusively to that exact deck — swap even one card and the hash changes completely. You'll use this to verify the game after the fact.

3. We get you to have some input on the game.
For card games, your input is a cut. You pick a position in the deck — your client seed — and we cut that many cards from the top before the deal starts. Playing poker and you choose 24? We cut 24 cards down before a single card hits the felt. You're in the mix from the jump.

4. You play the game!
Place your bets, start the game, and enjoy every hand.
5. We show you the actual data used to generate your game!
Hand over, we show you everything: the full shuffled deck (Result + Secret), the pre-game fingerprint (Hash[Result + Secret]), your Client Seed, and the Final Result. Cross-reference it with our widget — or take it to any SHA-256 calculator you like. The numbers will line up every time.

6. Check the effect you had on the game!
Line up the original shuffled deck (Result + Secret) against the post-cut deck (Final Result). Same cards, same order — just cut at the exact spot you chose. Your influence is baked right in.
Provably Fair Slots
1. We use a computer model for the Slot Reels and decide on a random spin to apply to each one.
Every reel gets mapped out as an ordered list of symbols, and a random stopping position is generated for each one individually using the Mersenne Twister. No reel gets the same treatment as another. The full set of positions across all reels is called the Result.
2. We show you a 'fingerprint' of the spin and a random number we call 'Secret'.
Same deal as always: we generate a random Secret, combine it with the Result, and run both through SHA-256 to produce a fingerprint — Hash(Result + Secret) — that's unique to that exact spin. You can't figure out the result from the fingerprint alone, but you can absolutely use it after the fact to confirm we didn't change anything on you.

3. We get you to have some input on the game.
You get to push each reel forward before it spins. Pick a digit from 0 to 9 for each reel — that's how many extra spots it shifts. Choose your own numbers or go with a random set. Either way, your input is locked in before anything happens.

4. You play the game!
Lock in your bet, hit spin, and let those reels fly.
5. We show you the actual data used to generate your game!
Once the reels settle, we show you the full breakdown: reel positions (Result + Secret), the pre-spin fingerprint (Hash[Result + Secret]), your client seed, and the Final Result. Verify it here with our widget or take it to any independent hash tool. Everything checks out — every time.

6. Check the effect you had on the game!
Your client seed is a multi-digit number where each digit maps to a different reel. On a 5-reel slot, it's a 5-digit number. Say your seed was 30700: for the first reel, locate the 3rd set in Result + Secret (sets start at 0) and take the first icon listed — that's your top row symbol for reel one. Work through the digits and you'll reconstruct the Final Result row by row, reel by reel.
Example:
Final Result
{
"symbols": [
[", "shield", "siren", "lightning", "medusa", "siren"],
[", "thor", "neptune", "heracles", "shield", "artemis"],
[", "coin", "coin", "themis", "coin", "thor"]
],
"card": "6D"
}
Client Seed: 30700
Result + Secret
{
"symbols": [
["siren", "siren", "heracles", "medusa", "siren"], (0)
["themis", "neptune", "themis", "shield", "artemis"], (1)
["heracles", "coin", "artemis", "coin", "thor"], (2)
["shield", "heracles", "heracles", "medusa", "shield"], (3)
["thor", "thor", "coin", "shield", "heracles"], (4)
["coin", "medusa", "themis", "artemis", "thor"], (5)
["lightning", "artemis", "ship", "ship", "medusa"], (6)
["minotaur", "shield", "lightning", "themis", "lightning"], (7)
["thor", "heracles", "heracles", "coin", "shield"], (8)
["artemis", "thor", "themis", "artemis", "medusa"], (9)
["coin", "siren", "coin", "heracles", "artemis"], (10)
["ship", "heracles", "neptune", "medusa", "thor"] (11)
],
"card": "6D",
"game": "slots:platinum_lightning",
"secret": "ad17e9bf57de88cd103569c6f84a1d63"
}How to verify?
1. Use any trusted hash calculator (quickhash works well).
2. Paste the game’s Result + Secret into the input box.
3. Choose SHA-256 and generate.
4. Confirm the new hash matches the one shown before the game.
If it matches, the spin was never altered.
Your bet didn’t change it. Your choices didn’t sway it. The result was sealed before play began.
Provably Fair Gaming At Cashy Casino
Frequently Asked Questions
- Provably fair means that every game outcome can be independently verified by the player using cryptographic methods, without relying on the casino's word or a third-party audit report. The result of every round is determined by a combination of seeds generated before the round begins, shared with the player in encrypted form and verifiable after the round ends.
- Before each round the system generates two seeds; a server seed from the casino hashed into an encrypted string and a client seed from the player. Both seeds are combined to produce the round outcome. The server seed is revealed in full after the round ends. If the outcome was altered after the seeds were set the hash would not match, making any manipulation mathematically detectable by anyone who runs the verification.
- RNG certified games are audited periodically by independent testing laboratories such as eCOGRA or GLI, who verify the system is operating fairly on behalf of the player. The player trusts the audit rather than verifying the outcome directly. Provably fair games remove the intermediary entirely; every player can verify every individual round outcome in real time using the published seeds and formula. Both standards are available at Cashy Casino. The difference is who holds the verification; with RNG certification it is the testing body, with provably fair it is the player.
- Provably fair technology is native to blockchain and cryptographic environments, which is why it exists almost entirely within the crypto casino space. The seed-based verification system is built on the same cryptographic principles that underpin cryptocurrency transactions, making it a natural fit for platforms that accept crypto rather than an add-on feature.
- No, and that is precisely the point of the system. The server seed is committed to a hash before the round begins and shared with the player in that encrypted form. Once the hash is published it cannot be altered without producing a different hash that any player can detect immediately by running the verification. The outcome is mathematically locked before the player places a bet.
- Every provably fair title at Cashy Casino includes the verification steps directly on the game page. After any round the player can access the server seed, client seed and nonce used to generate that outcome and run them through the published verification formula to confirm the result independently. The steps are written in plain language rather than technical documentation because a verification system that requires a developer to operate is not genuinely accessible to the players it is supposed to protect.
- Every Cashy Original is built on provably fair technology as a non-negotiable standard. Cashy Originals include crash games, dice, mines, plinko and card-based formats among others, all built from the ground up on the same cryptographic verification foundation. Third-party slots and table games in the Cashy library use independently certified RNG systems rather than provably fair technology because the provably fair standard applies to games built on the platform's own architecture rather than licensed from external providers.