Fairness
Our commitment to fairness and safety
At spiin.gg, the trust and confidence of our users is our utmost priority. We want to be 100% transparent and ensure users know they are participating in a fair system at all times. We've implemented stringent measures to guarantee the integrity and safety of our platform, preventing any tampering and allowing outcome validation by anyone.
How we ensure fairness
The program powering our platform is relatively simple. Item probabilities are calculated using inverse weighting and then assigned an integer range respective to its probability. A random integer is then generated using a set of variables that ensures complete randomness.
Our outcome generator uses a VRF (Verifiable Random Function), with which anyone can validate the outcome as being fair. The function accepts 3 variables:
Client seed: a string known to the client (aka the user). The default client seed is your user id concatenated with current timestamp
Server seed: a secret string integer generated on our server
Nonce: an auto incrementing integer used to add another layer of randomness to the outcome
#Python function for outcome validation
def get_outcome_number(client_seed: str, server_seed: str, nonce: int) -> int:
seed_str = f"{client_seed}:{server_seed}:{nonce}"
hash_bytes = hashlib.sha512(seed_str.encode()).digest()
hash_int = int.from_bytes(hash_bytes, 'big')
return (hash_int % 1_000_000) + 1
Path to decentralization
Last updated