logo
reaper logo

Provably Fair System

The Mechanism Behind Our Provably Fair System

  1. At the start of each game, a unique 8-character "secret" is generated. This remains undisclosed until the end of the round, ensuring the integrity of the game.
  2. We then secure this "secret" by encrypting it with the SHA-256 algorithm. Once encrypted, it's made public, ensuring it remains unchanged.
  3. At the conclusion of the game, we select a future block from the EOS Blockchain. This is unpredictable, thereby preventing any external influence on the game's outcome.
  4. Using the hash of the selected block and our initial "secret", we calculate a percentage. This percentage decides the game's winner.
  5. Players receive tickets based on their stake. For instance, a $10 stake gives you Tickets 0-9999. The winning ticket is determined by multiplying the highest ticket number by the calculated percentage.
  6. After the game concludes, we reveal the "secret" and all other related data. This ensures full transparency and verifies that the game was conducted fairly.

By using a future EOS block, we ensure unpredictability. Since the block's content is unknown until it's created, this guarantees a tamper-proof and fair gaming experience.

An Example with Dummy Values

Let's consider an example. Assume the secret is "ABCD1234" and the future EOS block hash is "EFGH5678". Using these, the winning percentage might be calculated as 52.36%. If the highest ticket number is 9999, the winning ticket would be 5236 (i.e., 9999 * 0.5236).

Coinflip Mechanism

The above process pertains to the jackpot game. For coinflip, the procedure is slightly different. In coinflip, the winner is determined based on their choice, which could either be "T" or "CT". The rule is simple: if the calculated percentage is less than 50%, then "T" wins. Otherwise, "CT" wins. This ensures a straightforward and transparent determination of the winner based on the unpredictable percentage.

Verify Game Data Yourself

If you'd like to verify game results yourself, you can use the following JavaScript snippet:

1// Required to generate cryptographic hashes
2const crypto = require('crypto');
3
4// Function to verify the winning percentage using the secret and EOS hash
5const verifyPercentage = (secret, eosHash) => {
6  // Create a new hash instance
7  const hash = crypto.createHash('sha256');
8  // Update the hash with our combined secret and EOS hash
9  hash.update(secret + eosHash);
10  const hashString = hash.digest('hex');
11
12  // Maximum possible value for a SHA-256 hash
13  const maxValue = 2 ** 256 - 1;
14  // Calculate the winning percentage
15  const value = (parseInt(hashString, 16) / maxValue) * 100;
16
17  return value;
18};
19
20// Example to use the verification function
21const totalTickets = 10000;
22const secret = 'ABCD1234';
23const eosHash = 'EFGH5678';
24const result = verifyPercentage(secret, eosHash);
25console.log('Calculated Percentage:', result); // 74.24370621323291
26
27// Jackpot winning Ticket:
28const winningTicket = Math.floor((result / 100) * totalTickets) + 1;
29console.log('Winning Ticket:', winningTicket); // 7425

Check Game Round Data

Enter the round ID and select a game type to review detailed data from a specific game: