A loot economy the player can audit.
Skins gambling has a trust problem: the house shuffles, the house draws, and the player is asked to believe the odds. We designed and built a CS2 case-opening product that inverts that - every case publishes its per-item odds and roll ranges before you spend a key, every outcome is committed in advance and verifiable after the fact from seed and nonce, and every item you win is a real CS2 skin you can withdraw to your own Steam inventory.
- provably fair - client seed, server seed, nonce, verifiable per roll
- published odds and roll range for every item in every case
- real skins out - withdraw to Steam, or sell back to balance

- Client
- Everyrealm
- Sector
- Gaming - CS2 skins, case opening & inventory
- Role
- Product design & frontend engineering, end to end
- Economy
- Steam sign-on · item deposits · crypto wallet
- Stack
- Next.js · React · TypeScript
Why players don't trust a case
A case-opening site asks for an unusual amount of faith. The player pays real money for a key, watches an animation they cannot inspect, and receives an item whose probability they were never shown. When the drop is bad - and most drops are - there is no way to tell an unlucky roll from a rigged one. That suspicion is the ceiling on the whole category: it caps deposits, it caps retention, and it is the first thing a skeptical community pins to the top of the thread.
So the product problem was not the animation. It was proof. Every number the house knows - the odds of each item, the range it occupies on the roll, the seed the outcome was drawn against - had to be visible to the player, before the open where possible and after it always. And the reward had to be real: not site credit dressed up as a knife, but a CS2 item that leaves the platform through a Steam trade and lands in an inventory the player already owns.
Six screens, one argument
The player meets the economy in this order: choose a crate, read the odds, win the item, take it to Steam. Every one of those screens hands the player a number the house would rather keep - the price, the probability, the roll range, the resale value - because the proof is the product.



| Item | Price | Odds | Range |
|---|---|---|---|
| AK-47 Ice Coaled | $5.41 | 0.724% | 0 – 93 923 |
| AK-47 Ice Coaled | $5.41 | 0.724% | 90 880 – 93 923 |
| AK-47 Ice Coaled | $5.41 | 0.724% | 90 880 – 93 923 |
| Knife Gold Coaled | $9.63 | 0.724% | 90 880 – 93 923 |


The architecture behind the economy
Each piece exists to keep one promise: the player can check the house's work.
Provably-fair opening, verifiable per roll
Every open is drawn against a client seed the player controls, a server seed committed before the roll, and an incrementing nonce. Seeds can be rotated, past seeds are revealed and kept in history, and any historical roll can be re-verified against the published algorithm - the site proves the outcome rather than asserting it.
Odds published before you spend a key
Each case exposes an “Items inside” view and an “Odds range” view side by side: the exact probability of every skin and the numeric band it occupies on the roll. The player sees a 0.724% knife as 0.724% - not as a rarity colour and a shrug.
Steam identity, one sign-on
Steam OpenID sign-in doubles as the trade identity: the account that logs in is the account items are traded to. Existing accounts can link Steam after the fact, so an email or wallet player becomes a trading player without starting over.
Real items in and out
Players fund the economy with their own CS2 items as well as currency, and every won skin has three honest exits - keep it in inventory, withdraw it to Steam against a trade URL, or sell it back to balance at a live quoted price. Item and currency values are reconciled against a price feed rather than an invented internal number.
A crypto-aware wallet under the economy
Cases are priced in currency and keys, funded by a multi-currency wallet - crypto carried at eight-decimal precision, fiat at two - with deposits, withdrawals, and a reconciled transaction history behind the same account surface as KYC and the battle pass.
The opening moment, engineered
The reveal is the product: a case detail that loads instantly, an open that resolves to a full-bleed item card with its float, its price, and its three next actions - sell, withdraw, open again - so the loop from win back to the next case is one click, never a page hunt.
Built on a shared, multi-brand library
The skins vertical runs on the same component library, wallet, and account surface as the group's casino and sportsbook brands. A second skins operator is a theme and a config, not a second codebase - and a fix in the wallet lands for all of them at once.
Measured in the field
These are properties of the build, not a campaign report: every roll is verifiable from seeds the player holds, every item's odds and roll range are published before the open, and every won skin has three real exits - inventory, Steam withdrawal, or sale back to balance. The trust argument is the product, so we made it something a skeptical player can check rather than something the marketing has to say.
The stack
- Next.js
- React
- TypeScript
- Steam OpenID
- NextAuth
- Redux Toolkit
- Framer Motion
- decimal.js
- Turborepo
- SCSS Modules + CSS custom properties
Building an economy players have to trust?
Skins, cases, wallets, verifiable draws - we've designed and shipped the whole loop. Tell us what you're building and we'll tell you exactly how we'd approach it.
15 min · no pitch · usually within 24h