Provably Fair


Ensuring you with fairness on upgrade.gg


Ensuring you with fairness

We strive to provide as much information as possible in order to ensure that our upgrades are legit and not preliminated or set in any leniant way in order to benefit our website. A client seed as well as a server seed (SHA256 hash version) is shown before the start of every round. As a user, you are given the ability to generate a new set of seeds at any time. You can also set a custom value to your your client seed as the server doesn't receive it until you begin your upgrade.

How does it work?

Every final percentage which is generated uses an HMAC SHA256 hash from the client seed, and the server seed is used as a key. The first four bytes of the hash result is converted to an unsigned 32-bit integer, and afterwards, divided by 232.

How to verify?

Below is the exact code we use to generate the roll on our server, you can run this code yourself using NodeJS. You can execute NodeJS code straight from your web browser with tools like: https://repl.it/languages/nodejs

const crypto = require('crypto');
class ProvablyFair {
    constructor(server_seed, client_seed) {
        this.server_seed = (server_seed || crypto.randomBytes(16).toString('hex')).toLowerCase();
        this.client_seed = (client_seed || crypto.randomBytes(16).toString('hex')).toLowerCase();
    }
    get server_hash() {
        let hash = crypto.createHash('SHA256');
        hash.write(this.server_seed);
        return hash.digest().toString('hex');
    }
    get round_result() {
        let hmac = crypto.createHmac('SHA512', this.server_seed);
        hmac.write(this.client_seed);

        let buf = hmac.digest();
        return buf.readUInt32BE() / Math.pow(2, 32) * 100;
    }
}

You start a new upgrade. Your client seed is d597c1f72790f244b1bd59e177606dba and your server hash is 3ac3a27e00a3724ab92e99f08f95d6bf309af4ffeb57698980a8414b6fd68db7. You do a 10x upgrade, meaning the server must roll 9.30% or below (without using a name bonus). You win and check your history. The server seed is 3e9b04fb057da725bcce13fc2b021ec8 and the round result is 5.093991%. If you want to verify this round, simply run this code after the code above:

//create a new fair generator with your round's server and client seed
var validator = new ProvablyFair("3e9b04fb057da725bcce13fc2b021ec8", "d597c1f72790f244b1bd59e177606dba");
                        
console.log("Server hash: " + validator.server_hash); //should print the server hash you originally got
console.log("Round result: " + validator.round_result); //should print something like 5.0939911743626
console.log("Success? " + (validator.round_result <= chance));

Check out challenges!

Execute Challenges, earn credits and exchange them into CS:GO skins. It's simple! Click to view list.