Every crash player has the same question in mind: was the round decided before you bet, or after? The answer should be verifiable. This is why we publish the hash before the round starts and the seed after it ends, and you can check the result yourself.
Before the lobby opens, the server creates a 32-byte random seed and publishes its SHA-256 hash. That hash sits on your screen while bets are open. Then the round plays. When it ends, the seed is revealed.
This is the complicated bit and we encourage you to give this article to an LLM to walk you through the steps if you're unfamiliar with hashing algorithms.
The crash point comes from two inputs: the seed and the round id.
HMAC-SHA256(key = seed, message = round id)
The seed is the 32 bytes behind the hash you were shown. The round id is mixed in so one seed cannot replay the same round twice, and HMAC is one-way, so the hash on screen does not give the seed away.
The digest is 32 bytes, read as three 8-byte numbers in order:
fair = first 8 bytes / 2^64
jitter = second 8 bytes / 2^64
rug = third 8 bytes / 2^64
target = min(100, 1 / (fair × 0.8))
rugValue = 1.00 + jitter × 0.09
crash = rug < 0.2 ? rugValue : target
fair sets the normal crash point, capped at 100x. jitter sets where inside 1.00x to 1.09x a rug dies. rug picks the branch, and rug < 0.2 is true in one round in five on average. These numbers are re-generated on every round independently of the previous round or play amounts.
The 0.8 in the normal formula is not a house cut. It means 20% of rounds will be rugs and end between 1-1.09x.
Dividing the same fair by 0.8 instead of 1 lifts the normal crash point by 25% making every non-rug round reach a higher multiplier by 25%. So the four rounds that survive reach any given target 25% more often than they would in a game with no rugs at all. That extra 25% on four rounds is exactly what pays for the fifth.
The algebra is short. The chance a round reaches a target of m is the chance it is not a rug, 4/5, times the chance the normal crash point is at least m, 1/(0.8m):
(4/5) × 1/(0.8m) = 1/m
The 0.8 cancels the 4/5. From 1.25x up, the chance of reaching a target of m is exactly 1 in m: 2x is 1 in 2, 10x is 1 in 10. A game with no rug rounds at all would give the same odds.
So the rug is there for the shape of the game and to make it more exciting. Without it the 0.8 would be 1.0, and every crash point would come out lower on average. With it, one round in five ends almost immediately and the other four get to climb higher.
Plus, we have a 100x cap. It is there to ensure our algorithm doesn't run rogue and give 1000x payouts draining the entire treasury. All platforms have these caps, it's just they don't expose them to users or keep running to 100k+ multipliers after everyone is already cashed out. We don't do that at Slotana.
As for the animations, the candle moves up and down in small random steps, but the crash point is set before the first step. The steps only change how the round looks on the way there. The animation, the amounts, the way the multiplier plays out: none of it touches the outcome. The round was decided before it began so do not try to predict things based on how the animation plays.
Play crash at slotana.io. You can watch a full round without betting and browse other players' play history.
If you need SOL to play, our guide to closing empty token accounts covers the cheapest way to get some quick SOL back if you've been in the scene for some time.