Skip to content

Crash

PropertyValue
Slugcrash
Round typeSingle-step (per player)
RTP100% − house_edge (configurable 1%–10%, default 3%)
VolatilityHigh
DevicesDesktop, Mobile
Provably FairYes
MultiplayerYes — shared round, independent bets

Crash is a multiplayer game where a multiplier rises from 1.00x and can “crash” at any moment. Players place bets before the round starts and must cash out before the crash. The longer they wait, the higher the multiplier — but if the crash happens first, they lose their bet.


  1. Betting phase — players place bets (up to 2 bet slots per player per round) during a countdown
  2. Running phase — the multiplier starts rising from 1.00x
  3. Cashout — players can manually cash out at any time, locking in the current multiplier
  4. Crash — at a random point (determined by provably fair algorithm), the multiplier crashes. All players who haven’t cashed out lose their bets

The raw crash point is determined by a provably fair algorithm. Each operator has a configurable house edge (1%–10%) that reduces the effective multiplier:

effective_multiplier = raw_crash_point × (1 − house_edge)

Example (3% house edge):

  • Raw crash point: 2.50x → Effective: 2.425x
  • Raw crash point: 10.00x → Effective: 9.70x
  • Raw crash point: 1.01x → Effective: 0.9797x (player loses)

Each player can place up to 2 bets per round (slot 1 and slot 2), each with an independent amount and optional auto-cashout multiplier. Each bet gets its own round_id and is settled independently.

Players can set an auto-cashout multiplier when placing a bet. If the rising multiplier reaches this threshold, the system automatically cashes out the bet.


Crash settles one round per player bet — each bet has its own round_id with one bet and optionally one win:

sequenceDiagram
    participant Player A
    participant Player B
    participant Game as Crash Game
    participant Beexar
    participant Wallet as Operator Wallet

    Note over Game: Betting Phase (countdown)
    Player A->>Game: Bet $10 (slot 1)
    Game->>Beexar: Place bet (round_id=ra-1)
    Beexar->>Wallet: POST /betwin (round_id=ra-1, bet=10, finished=false)
    Wallet-->>Beexar: { balance: "490.00", transactions }

    Player B->>Game: Bet $50 (slot 1)
    Game->>Beexar: Place bet (round_id=rb-1)
    Beexar->>Wallet: POST /betwin (round_id=rb-1, bet=50, finished=false)
    Wallet-->>Beexar: { balance: "950.00", transactions }

    Note over Game: Running Phase — multiplier rising
    Player A->>Game: Cash out at 2.40x
    Game->>Beexar: Win (round_id=ra-1)
    Beexar->>Wallet: POST /betwin (round_id=ra-1, win=24, finished=true)
    Wallet-->>Beexar: { balance: "514.00", transactions }

    Note over Game: CRASH at 3.50x
    Note over Game: Player B did not cash out — loses bet
    Beexar->>Wallet: POST /finish (round_id=rb-1)
    Wallet-->>Beexar: { balance: "950.00" }

In crash, the round is shared among all players, but each player’s bets are independent:

  • Each bet gets its own unique round_id
  • Each bet generates its own /betwin (and /finish when the bet was not already closed by finished: true)
  • The operator sees individual player rounds, not one massive shared round

OutcomeWallet Calls
Player cashes out/betwin (bet) → /betwin (win, finished=true)
Player loses (crash)/betwin (bet) → /finish
Auto-cashout triggered/betwin (bet) → /betwin (win, finished=true)
Bet error (wallet failure)/betwin fails → bet voided, /rollback sent asynchronously

The request/response shape of these calls is the same for every game — see the Wallet API for full field references and examples.


Operators configure crash games in the Beexar backoffice:

ParameterTypeDefaultRangeDescription
house_edgefloat0.030.01–0.10House edge (1%–10%)
bet_limits.min_betdecimalConfigurableMinimum bet amount
bet_limits.max_betdecimalConfigurableMaximum bet amount

Platform-Level Settings (Not Operator-Configurable)

Section titled “Platform-Level Settings (Not Operator-Configurable)”
SettingDescription
Betting phase durationHow long players have to place bets
Multiplier speedHow fast the multiplier rises
Max bets per roundMaximum bets per player per round (default: 2)

Crash uses a provably fair algorithm to determine the crash point:

  1. Before each round, a unique server seed (64 random hex bytes) is generated
  2. The SHA-256 hash of the server seed is shared publicly before the round starts
  3. Each player provides a client seed when placing a bet
  4. The crash point is computed deterministically from the combined seeds

The derivation reads a keyed HMAC-SHA256 byte stream (server seed as the key, the mixed client seeds as the message), takes the first 52 bits as a uniform value u in [0, 1), and maps it to the multiplier:

raw = max(1.00, floor(1 / (1 − u) × 100) / 100)
crash_point = min(raw, max_multiplier)

max_multiplier is the per-round cap (platform default 10000x). It is part of the canonical formula, snapshotted onto the round at creation — not applied afterwards — so the ~1-in-10000 round whose uncapped raw exceeds the cap still verifies exactly. After the round ends, the server seed is revealed and the round-detail response exposes raw_crash_point, max_multiplier, and the final crash_point, so anyone can reproduce the draw and confirm crash_point == min(raw_crash_point, max_multiplier).


Operators can customize crash game appearance via the backoffice:

SettingDescription
Game object imageCustom image for the rising element (rocket, plane, etc.)
Multiplier font sizesmall, medium, or large
Multiplier glow colorHex color for the multiplier glow effect
Chat panel colorsBackground, text, and border colors for the chat panel
Background & colorsCustomizable via the visual design editor

ScenarioWhat Happens
Win wallet call failsThe win is rolled back asynchronously. The bet remains — player effectively loses.
Stale bet recoveryIf a bet is stuck for too long (e.g., network issue), Beexar rolls it back asynchronously.
Bet wallet call failsThe bet is voided. No rollback is sent since the operator never confirmed the bet.

From the operator’s perspective, crash behaves like any other single-step game — each bet generates independent wallet callbacks:

  • Each player bet = its own round_id
  • Each bet receives /betwin, and a /finish only when the round was not already closed by finished: true
  • Multiple players in the same crash round produce separate round_id values — the operator does not need to know about the shared underlying round
  • Reconciliation: net bet minus win for each round_id gives the operator’s revenue per bet