Logo2.0

Provably Fair

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.

Dice

Recent Bets

Date / Time
Bet amount
Win amount
Multiplier
Server Seed

Verification Example

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))