Every case opening and skin upgrade on RazeCase is decided by a provably fair algorithm. The result is fixed before you play, and once the seed is revealed anyone can recompute it.
We lock the next server seed and show its hash in advance. Only then do you set your client seed: draw a Lucky Pattern, type your own or let your browser generate one. Your client seed comes from your browser, not from our server, so we cannot fit our seed to yours. You can change the client seed at any time: the old server seed is revealed and the next one, locked in advance, takes over.
The first 13 hex characters of the HMAC form a number from 0 to 2^52 − 1. Divided by 2^52 it gives the roll — a number from 0 to 1.
hmac = HMAC_SHA256(key = server_seed, message = client_seed + ":" + nonce)
roll = int(hmac[0:13], 16) / 2 ** 52
ticket = floor(roll * total_tickets)
Cases: the odds table of the case becomes a line of tickets. Each skin gets its chance × 1,000,000 tickets (0.30% = 300,000 tickets, never fewer than 1), and the skin whose range contains the ticket drops.
Upgrades: the upgrade wins when the roll is lower than the chance shown before the spin.
Magic: the skins around the stake price get an odds table of their own, laid out in tickets exactly like a case; the ticket picks the skin. The wheel spins only show the way up to it.
Sniper: every jump is a roll of its own; the jump succeeds when the roll is lower than the jump chance shown before it.
Give it the server seed, client seed and nonce of a result, and the ticket total of the case if you need the ticket. It prints the server seed hash, the roll and the ticket: compare them with the hash shown before the roll, the result details and the ranges in the case odds table.
Skins are laid out on the ticket line in a fixed canonical order: by name, then by wear (a strict character-by-character comparison of the UTF-8 text, like strcmp), and if both match, by item ID. The chance plays no part in the order, so equal chances change nothing and the order cannot be adjusted to a result. The first skin takes tickets from 0, each next skin starts right after the previous one; the total is the sum of all tickets (100,000,000 when the chances add up to 100%).
Example: a case with four skins. The roll 0.4271540999 gives ticket floor(0.4271540999 × 100,000,000) = 42,715,409, which falls into the range of AWP | Asiimov. The two AK-47 | Redline skins have equal chances and are ordered by wear, and the most likely skin comes last.
The prize fund must always be able to pay for the most expensive skin in a case. When it cannot, we pause the case until the fund is topped up — the odds you see are never changed and results are never re-rolled.
Paste a verification link or a result ID from your history, or enter the seeds and nonce manually.
Choose a case from the list or enter its ID (the number at the end of the case page address, …/#/case/ID) to see its skins and the ticket table — exactly the one the next opening uses.
Magic swaps the stake for one skin from a ladder built around the stake value S.
The chances form a bell over the rungs, wider below its peak than above.
The odds table is laid out in tickets exactly like a case table, and one roll of your seed pair picks the ticket.
Enter a stake amount to see its ladder: exactly the table Magic plays for that amount right now.