Verify a roll
Paste a past seed pair and the nonce to recompute the outcome locally. Active server seeds are not verifiable until rotated.
Paste a past seed pair and the nonce to recompute the outcome locally. Active server seeds are not verifiable until rotated.
Paste any past seed pair from your Fairness page (or supplied via a verify-link in transactions / battles). Active seeds are not verifiable until rotated.
Don't want to trust this page? Paste the snippet below into any browser console — it does the same HMAC + modulo computation, with zero network calls.
// Paste into your browser console.
async function verifyLootBoxRoll({ serverSeed, clientSeed, nonce }) {
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 hex = [...new Uint8Array(sig)].map(b => b.toString(16).padStart(2, '0')).join('');
const moduloBp = Number(BigInt('0x' + hex.slice(0, 16)) % 10000n);
return { hex, moduloBp };
}
// Example:
verifyLootBoxRoll({
serverSeed: '<64 hex chars>',
clientSeed: 'your-client-seed',
nonce: 0,
}).then(console.log);