NXG ROLL — Provably Fair

How it works

Each round uses a hidden server seed (hash shown before betting closes), a public client seed, and an incrementing nonce. The outcome index is HMAC-SHA256(serverSeed, clientSeed:nonce) % stripLength.

After the round settles, the server seed is revealed. Tap a nonce in the table to see which symbol landed.

Play live: NXG ROLL

Public client seed

Roll history

Loading roll history…

Verify in JavaScript

// Verify any NXG ROLL round (browser console or Node with crypto)
async function verifyNxgRoll(serverSeed, clientSeed, nonce, stripLength) {
  const enc = new TextEncoder();
  const key = await crypto.subtle.importKey(
    'raw',
    enc.encode(serverSeed),
    { name: 'HMAC', hash: 'SHA-256' },
    false,
    ['sign'],
  );
  const sig = await crypto.subtle.sign('HMAC', key, enc.encode(clientSeed + ':' + nonce));
  const bytes = new Uint8Array(sig);
  const num =
    ((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0;
  return { digest: num, outcomeIndex: num % stripLength };
}