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 };
}