Loading UPSHIFT...
Every upgrade outcome on UPSHIFTER (upshifter.pro) is mathematically predetermined before you spin, locked with a cryptographic SHA-256 hash, and completely verifiable by you. The server cannot alter your roll once the game begins.
Before your spin, the server generates a secret 64-character hex seed and sends you its SHA-256(serverSeed) hash.
Your custom client seed and game nonce are combined with the server seed into a deterministic HMAC-SHA256 message.
Immediately after the outcome settles, the unhashed server seed is revealed in your Game History. You can reproduce the exact roll on any third-party tool.
The exact open-source logic used by the UPSHIFT upgrade server to derive roll values from 0.00 to 99.99:
import crypto from 'crypto';
export function computeRollValue(serverSeed: string, clientSeed: string, nonce: number, chancePercent: number) {
// 1. Compute HMAC-SHA256
const hmac = crypto.createHmac('sha256', serverSeed);
hmac.update(`${clientSeed}:${nonce}`);
const hex = hmac.digest('hex');
// 2. Take first 8 hexadecimal characters (32 bits)
const subHex = hex.substring(0, 8);
const intVal = parseInt(subHex, 16);
// 3. Map evenly onto range [0.00, 99.99]
const rollValue = Number(((intVal % 10000) / 100).toFixed(2));
// 4. Win criteria: rollValue must fall strictly within the upgrade chance window
const isWin = rollValue < chancePercent;
return { rollValue, isWin, hex };
}Upgrade probability is derived purely from verified input skin valuations and target skin catalog valuations:
Verify cryptographic HMAC-SHA256 roll outcomes independently in your browser.
Use the chance from your game roll. For 100% win mode enter 100.