ControlControl
O-RangerO-Ranger
OceanicOceanic
System LockSystem Lock
Flora CarnivoraFlora Carnivora
Wild ChildWild Child
Rising SunRising Sun
OceanicOceanic
Orange CrashOrange Crash
Urban RubbleUrban Rubble
Neural NetNeural Net
Candy AppleCandy Apple
HypnoteyesHypnoteyes
Bolt ChargeBolt Charge
Kawaii Eyes (Glitter)Kawaii Eyes (Glitter)
Heaven GuardHeaven GuardST
GrimGrim
Wild SixWild Six
InsomniaInsomnia
Elite BuildElite Build
Pit ViperPit Viper
HeatHeat
HeatHeat
Pipe DownPipe Down
CapillaryCapillary
ConnexionConnexion3x

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