Logo

Verify your games

Randomization

Our platform leverages EOS blockchain blocks to generate a secret hash that determines outcomes in battles. This process is fully external, decentralized, and beyond our control, driven solely by the actions of miners and validators. Influencing game outcomes would require dominating the entire EOS blockchain network, which is not feasible. If you have any questions, please contact our support team.

Timeline

When you create a battle, no result is generated until all other player or bots joins. Once all players and/or bots have joined, we determine the number of the last block and select an EOS block not already mined.

For example, if the the last mined block is #371315767, we add 3 to that number giving us block #371315770, which we will await to obtain the unique hash of the EOS Block ID, which we cannot known in advance.

After the block has been mined, we obtain its unique hash (EOS Block ID), which we use as a part of Client Seed and make the first roll.

There are a lot of blockchain websites that can verify this. We use bloks.io but there are other options available from here: https://eosnetwork.com/block-explorers/. Once you select the provider, you can verify that the block was indeed some seconds into the future. An example block can be found here:https://bloks.io/block/359689419.

Terms and definition

  • EOS Block ID - Obtained from the mined EOS block immediately before the start of the first round in the battle.
  • Slot - Basically the player position in the battle, If you appear 2nd from the left, your position would be 2.
  • Client Seed - A combination of the EOS Block ID and Slot, separated by dash. Essential for creating the roll hash.
  • Server Seed - A randomly generated string assigned when a battle is created.
  • Server Hashed Seed - The hashed version of the Server Seed.
  • Nonce - Equivalent of the round number in the battle mode.
  • Block Number - A unique number for each EOS Block.
  • Roll Hash - Produced using client seed, nonce and the server seed.
  • Roll Ticket - A item ticket number derived from converting the roll hash in the range from 1 to 10,000,000.

Rolling

This code illustrates the logic for generating a ticket for each roll and player. Every new round (roll) produces item tickets that users receive in the game inventory. roll - refers to the ticket number that determines the item a user gets within that roll.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 <?php // // EmpireDrop Provably Fair Case Battles // /* * Fill in all three below and click the blue 'eval();' button. ------------------ */ $server_seed = ''; $client_seed = ''; $nonce = $roundNumber = 0; /* ------------------ */ if ($server_seed == '' || $client_seed == '' || $nonce < 0) { echo "Fill in details"; return; } define('MIN_RESULT', 0.00001); define('MAX_RESULT', 100); define('CONVERT_RATE', 100000); define('HASH_TYPE', 'sha256'); function getProvablyFairResult(string $client_seed, string $server_seed, int $nounce) { $hash = hash_hmac(HASH_TYPE, "{$client_seed}-{$nounce}", $server_seed); $normalized = hexdec($hash) / (16 ** strlen($hash)); $roll = MIN_RESULT + $normalized * (MAX_RESULT - MIN_RESULT); return convertDecimalValue($roll); } function convertDecimalValue(float $value): int { return round($value * CONVERT_RATE); } $result = getProvablyFairResult($client_seed, $server_seed, $nonce); echo "Result: {$result}";

Openings after April 5th 2024 used this code: https://3v4l.org/pGCPE

This can be run locally or on any PHP script runner found online. We direct customers to: https://3v4l.org/ for this, but there are plenty of options available like so:

The customer will need to edit the server_seed, nonce & client_seed variables in the script to verify results.
This information can be found here: https://empiredrop.com/account/game-history under ”Battles”.

Draw roll

Sometimes, after the final tally of all player items, two or more players might have the same value of items earned during the battle.

To resolve this tie, an additional mini-round called Draw roll is conducted. It's essentially a roulette spin within the game that selects one winner among the tied players, ensuring a fair and honest determination of the victory.

In this case, the Draw roll is also Provably Fair by using:

  • Server seed - The one generated for the battle.
  • Client seed - The EOS Block ID linked to the battle.
  • Nonce - Total number of rounds in the battle plus one.


In the event of a draw where players have items of equal value, the winner is determined by the slot each player occupies and a randomly generated ticket ranging from 1 to 10,000,000. The slot corresponds to the player's position in the game, counting from left to right.

For a draw involving two players:

  • If the result is between 1 and 5,000,000 then, the player in slot 1 is declared as winner.
  • If the result is between 5,000,001 and 10,000,000 then, the player in slot 2 is declared as winner.

For a draw involving three players:

  • If the result is between 1 and 3,333,333 then, the player in slot 1 is declared as winner.
  • If the result is between 3,333,334 and 6,666,666 then, the player in slot 2 is declared as winner.
  • If the result is between 6,666,667 and 10,000,000 then, the player in slot 3 is declared as winner.