Provably Fair
Understand how we guarantee the integrity of our games using provably fair
How does it work?
Provably Fair
The provably fair is a transparency method that ensures that the outcomes of gambling games are fair and unbiased. This method uses cryptography technologies to ensure that the outcomes of the games cannot be manipulated, and guarantees a safe and fair gaming experience for all players.
Why do we use provably fair?
We use the provably fair to bring trust and transparency to our players. On this page, we will explain how the system works and how you can independently verify its integrity.
Is this method trustworthy?
We understand that if the method itself is not trustworthy, the system will not have integrity. Therefore, the method uses encryption to make available the keys used to generate the outcomes before the games even happen.
Cryptography
What is cryptography?
Cryptography is a digital security technique that "scrambles" information into a coded format.
This same technology is used globally to bring security to your passwords. For example, when you create an account on any site, your password is encrypted before being stored in the service's database, and only you, with your password, will have the possibility to decrypt this information.
This same technology is used globally to bring security to your passwords. For example, when you create an account on any site, your password is encrypted before being stored in the service's database, and only you, with your password, will have the possibility to decrypt this information.
Proof of outcomes
Audit
We use the provably fair in pack openings, where the card received depends on luck. Other bets that can be placed on the platform are based on the actual outcome of sports events, where the outcome is unpredictable and cannot be manipulated.
The application of the provably fair system is based on three properties: the server key, the user key, and a nonce that can be used only once.
Server Key: a key, or password, that the server will use to generate random outcomes. This information is available to you before the game, but in encrypted form. After the game, you will have access to the decrypted key, and can use the same encryption algorithm to verify the integrity of the outcome. To ensure that we will not change the server key to manipulate the outcome, you will not only have access to the current server key, but also the future key. The future key will be used after the current one, making it impossible for us to alter this key to manipulate the outcomes of the games, unless we can predict the future. You can check the current and future server key on the proof of outcomes panel.
User Key: a key, or password, set by you. If you choose not to set this key, it will be generated automatically. However, we recommend that you set your own key so there are no doubts about the integrity of the games. You can set your key on the proof of outcomes panel. Your key can be changed at any time, even after receiving the server key, this ensures that we cannot manipulate the outcome of your bets, after all, you will have our key in advance, and can change yours at any moment.
Nonce: This number, also known as nonce, is a number that can only be used once. This ensures that even if you open thousands of packs, the outcomes will always be different. This number is defined by how many times you have already opened a pack. If you have never opened one, it will be 1, and subsequently, it will be incremented for each pack opened.
The application of the provably fair system is based on three properties: the server key, the user key, and a nonce that can be used only once.
Server Key: a key, or password, that the server will use to generate random outcomes. This information is available to you before the game, but in encrypted form. After the game, you will have access to the decrypted key, and can use the same encryption algorithm to verify the integrity of the outcome. To ensure that we will not change the server key to manipulate the outcome, you will not only have access to the current server key, but also the future key. The future key will be used after the current one, making it impossible for us to alter this key to manipulate the outcomes of the games, unless we can predict the future. You can check the current and future server key on the proof of outcomes panel.
User Key: a key, or password, set by you. If you choose not to set this key, it will be generated automatically. However, we recommend that you set your own key so there are no doubts about the integrity of the games. You can set your key on the proof of outcomes panel. Your key can be changed at any time, even after receiving the server key, this ensures that we cannot manipulate the outcome of your bets, after all, you will have our key in advance, and can change yours at any moment.
Nonce: This number, also known as nonce, is a number that can only be used once. This ensures that even if you open thousands of packs, the outcomes will always be different. This number is defined by how many times you have already opened a pack. If you have never opened one, it will be 1, and subsequently, it will be incremented for each pack opened.
Independent verification
Verifying in practice
Let's use a practical example of how you can independently verify the outcomes. First, let's access the proof of outcomes panel and update the user key and check the server key:
Here we will have access to your key and the server keys:

Current server key:6e43a09751aaa1e298b36a7f23bf7d4c4e9aacd81e36593baf20cd1053d13866
Future server key:f141044ea1b1704157a314ace3329bfd2b4118e30e65a3e72ec1ca00acf47ffc
User key:piperbet_is_fun!
Opening a pack
At this moment we have access to all the keys that will be used to generate the outcome. The current number of bets (nonce) in this example is 153. With all these values, let's proceed to the opening of a pack. For this example, let's open a pack from FC Barcelona by La Liga.

Obtaining the decrypted server key
Once the pack has been opened and we have received our card, we will now have access to the decrypted server key. To access this information just enter the user panel and access the pack opening history and click on the "proof of outcome" button.
Now we have access to the decrypted server key, and also the outcome of the game:

Decrypted server key:c8939c21a7400f7523f86b5e8342eb00198d12a41a88d2e90036a870824bf1b6
Outcome:17178730
Calculating the result
The result is effectively the card you received. This is the most crucial step of the process, where we will independently calculate if the result is correct.
To perform this calculation, the three pieces of information mentioned above will be used separated by a hyphen, with the server key decrypted first, followed by the user key and the nonce: c8939c21a7400f7523f86b5e8342eb00198d12a41a88d2e90036a870824bf1b6-piperbet_is_fun!-153
Now we will transform this final key into a numerical value. For this, we use a message authentication code algorithm with hash key (HMAC SHA256) in hexadecimal base. Subsequently, this result is dynamically translated into an integer.
We understand that this part can be complex without prior technical knowledge. At this moment, it is important for you to validate this information outside our platform. To assist you, we openly provide the source code of this algorithm. Alternatively, you can copy the code and run it in any online execution environment. It will not be necessary to use our code itself, just understand how it is done to be able to replicate the result independently.
To perform this calculation, the three pieces of information mentioned above will be used separated by a hyphen, with the server key decrypted first, followed by the user key and the nonce: c8939c21a7400f7523f86b5e8342eb00198d12a41a88d2e90036a870824bf1b6-piperbet_is_fun!-153
Now we will transform this final key into a numerical value. For this, we use a message authentication code algorithm with hash key (HMAC SHA256) in hexadecimal base. Subsequently, this result is dynamically translated into an integer.
We understand that this part can be complex without prior technical knowledge. At this moment, it is important for you to validate this information outside our platform. To assist you, we openly provide the source code of this algorithm. Alternatively, you can copy the code and run it in any online execution environment. It will not be necessary to use our code itself, just understand how it is done to be able to replicate the result independently.
Translating the result
To translate the numerical result into the card actually received, we need to access the pack page again. Click on the received card, and you will have access to two numbers: start and end. The result will be within this range.
Each card in the pack will have a different range, defined by its probability on a scale from 1 to 100 million numbers. This means there are 100 million different possibilities for your result.

Last step
Validating the server key
Now you have ensured that the result was indeed random without the possibility of manipulation. However, the initially verified server key was encrypted, and to ensure that there was no interference, you need to ensure that the decrypted server key corresponds to what was provided.
To do this, simply reverse the process, encrypting again the provided decrypted key in your history using a SHA256 algorithm, and ensure that the found result is indeed the key previously provided as encrypted key.
To perform this process, you can use any online tool to encrypt text using the SHA256 algorithm. We prefer not to recommend any specific tool to avoid interference in your audit, but you can easily find an online tool by searching for "SHA256 online".
To do this, simply reverse the process, encrypting again the provided decrypted key in your history using a SHA256 algorithm, and ensure that the found result is indeed the key previously provided as encrypted key.
To perform this process, you can use any online tool to encrypt text using the SHA256 algorithm. We prefer not to recommend any specific tool to avoid interference in your audit, but you can easily find an online tool by searching for "SHA256 online".