MoonriseMoonriseST
DerailmentDerailment
CyrexCyrex
Steel DeltaSteel Delta
HandgunHandgun
Sky MandalaSky Mandala
Sleeping PotionSleeping Potion
Sleeping PotionSleeping Potion
In Living ColorIn Living Color
NitroNitro
Modest ThreatModest ThreatST
SlagSlag
Robin's EggRobin's Egg
Wild SixWild Six
SolitudeSolitude
TurbineTurbine
Googly Eye (Lenticular)Googly Eye (Lenticular)
Tiger MothTiger Moth
WeaselWeasel
Tooth FairyTooth FairyST
Heat TreatedHeat Treated
Arctic Tri-ToneArctic Tri-Tone
Heat TreatedHeat Treated
Blood TigerBlood Tiger
SweeperSweeper
Steel DeltaSteel Delta

WHAT IS THE TRANSPARENCY SYSTEM?

The transparency system we use allows you to verify the correctness of each opening.

The result of an opening is not random but calculated based on three values:

  • server seed - a phrase determined by the server,

  • client seed - a phrase determined by the user,

  • nonce - a unique number used to ensure the security of calculations.

The phrase "Server seed" is hidden from the user and displayed only as a ("Public hash") to prevent prediction of the contents of the next case.

By using data provided by both the server and the user, it is possible to ensure the transparency of the opened case while eliminating interference from both sides.

CONFIGURATION

CLIENT SEED

SERVER SEED

Encrypted server seed using the HMAC SHA-512 method.

NONCE

CODE TO VERIFY TRANSPARENCY OF OPENING

Once the Server seed is revealed, you can use the code below to verify the transparency of the opening. You can run it directly in your web browser using any JavaScript compiler tool. Using the code below, prepare your own verification script and then click the "Run" button. After executing the script, the result of the opening will be displayed, which should match the result posted on our website.



async function getRoll(serverSeed, serverNonce, clientSeed) {
	const enc = new TextEncoder();
	const key = enc.encode(serverSeed);
	const message = enc.encode(clientSeed + '-' + serverNonce.toString());

	const cryptoKey = await crypto.subtle.importKey(
		'raw',
		key,
		{ name: 'HMAC', hash: 'SHA-512' },
		false,
		['sign']
	);

	const signature = await crypto.subtle.sign('HMAC', cryptoKey, message);
	const hashArray = Array.from(new Uint8Array(signature));
	const hex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
	const rollHex = hex.substring(0, 7);
	const number = parseInt(rollHex.replace(/[^a-f0-9]/gi, ''), 16);

	return (number % 100000) + 1;
}

serverSeed = '';
serverNonce = 1;
clientSeed = '';

getRoll(serverSeed, serverNonce, clientSeed).then(roll => console.log('Roll result:', roll));

VERIFY OPENING