GrowSpin
Connecting100%
GrowSpin

Provably Fair

Our platform uses a cryptographic provably fair system to ensure that all game results are truly random and completely unalterable by the house. Every roll can be mathematically verified.

1
Server Seed

A secret random string generated by our server before the game starts. We provide you with its hashed version (SHA-256) so you know it wasn't changed after you place your bet.

2
Client Seed

A string that you can choose or let your browser generate. This ensures that you have direct influence over the final outcome, making it impossible for the server to rig the result.

3
Nonce

A number that increments with every bet you place. This ensures that even if the Server Seed and Client Seed remain the same, every single roll generates a completely unique result.

How The Math Works

To generate the outcome, we combine the three variables using an HMAC-SHA256 signature. The resulting hex string is converted into a decimal number, which determines the roll result.

// Example Roll Generation (Node.js)
const crypto = require('crypto');

const serverSeed = 'server_secret_seed';
const clientSeed = 'your_client_seed';
const nonce = 1;

// Combine Client Seed and Nonce
const payload = `${clientSeed}:${nonce}`;

// Create HMAC-SHA256 hash
const hash = crypto.createHmac('sha256', serverSeed).update(payload).digest('hex');

// Take first 8 characters and convert to integer
const subHash = hash.substring(0, 8);
const rollNumber = parseInt(subHash, 16);

// Calculate modulo depending on game type (e.g. 0-99 for dice)
const finalResult = rollNumber % 100;