What does it mean?
A provably fair algorithm solves the trust issue between players and operators by providing a transparent way to verify round results.
Provably Fair implies that the results are generated before the betting phase and that they can't be altered by the server operator for their benefit.
The verification process is also transparent and available for everyone to evaluate.
Recent Bets
Anyone can verify that the outcomes of all prior game rounds were generated using the provably fair algorithm with the following python code:
import math import hashlib #################### Values to edit ######################## # Selected win chance from 0.01 to 98 win_chance = 67 # UNHASHED secret secret = b"a3a73bc0cde733f5747a9a613cf14222" # User seed user_seed = b"your seed" # Bet amount bet_amount = 10 # False - win_number is above / True - win_number is below is_below = True ############################################################ full_seed = secret + b":" + user_seed def bytes_to_uniform_float(xs: str) -> float: hash = hashlib.blake2b(xs, digest_size=32).digest() return int.from_bytes(hash[:8], byteorder='big') / float(2**64 - 1) def get_win_number(full_seed: str) -> float: float_value = bytes_to_uniform_float(full_seed) return round((float_value * 10001) / 100, 2) def calculate_multiplier(win_chance: float, is_below: bool) -> float: return round(99 / win_chance, 4) def calculate_bet_number(win_chance: float, is_below: bool) -> float: return 100 - win_chance if not is_below else win_chance def calculate_payout(bet_amount: float, win_chance: float, win_number: float, is_below: bool) -> float: bet_number = calculate_bet_number(win_chance, is_below) multiplier = round(99 / win_chance, 4) payout = round(bet_amount * multiplier, 2) return payout if (bet_number >= win_number and is_below) or (bet_number <= win_number and not is_below) else 0 print("Hash of secret:", hashlib.blake2b(secret, digest_size=32).digest().hex()) win_number = get_win_number(full_seed) print("Bet number:", calculate_bet_number(win_chance, is_below)) print("Win number:", win_number) print("Total payout:", calculate_payout(bet_amount, win_chance, win_number, is_below))