Provably Fair System

Arkland uses a verification system that allows players to check the fairness of every bet and confirm they have not been manipulated.

Random numbers are generated by the use of two seeds: Server Seed and Client Seed. The Server Seed is hashed and shown before the start of the bet. Since you choose your own Client Seed, there is no way for us to alter the outcome without the verification failing.

After you buy a ticket, you're given the following information:

Client Seed is a combination of the Client Seed that you provided, + the 16 first characters of your transaction ID.

Server Seed is a secret string that we use to generate random outcomes, and is released at the end of the raffle. To guarantee that we haven't changed this secret, we tell you the hash of this secret phrase.

Server Seed Hash is a SHA256 hash of the Server Seed. This guarantees that we haven't changed the Server Seed, as once we release it, you can run hash('sha256', $server_seed) , and the outcome will be the same as this hash.

Result Seed is a SHA512 hash of the Server Seed Hash + Client Seed. We use this hash to draw your Lucky Number.

We split your Result Seed into chunks of 10 characters each. Each Iterator is a chunk. In the case of the image above, the iterator is 0, which means the first chunk 19d769bd94 will be used to draw your ticket.

Result Number is the conversion of the chunk above, from hexadecimal to decimal. In JavaScript, the equivalent of this is parseInt("19d769bd94", 16) .

From the Result Number, we can finally draw your Lucky Number. We do a modulo operation, $resultNumber % 32 , 32 being the number of teams. In javaScript: 110988213652 % 32 = 20 .

If you lucky number is 0, we'll take the next 10 digits chunk of your Result Seed, and perform the calculation with it. In this case, the iterator would be 1.

$result_seed = hash_hmac('sha512', $serverHash, $clientSeed);

$result_number = hexdec($resultChunk);

$lucky_number = abs($result_number % 32);

You can run the following query in PHP to verify the results: