> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chance.money/llms.txt
> Use this file to discover all available pages before exploring further.

# Bet modes

> Strike, Range, and Ladder — payout shapes, formulas, and when to use each.

Every mode pays `EV × stake` in expectation (v1: EV = 0.85). What differs is the **shape** of the payout distribution.

## Pick your mode

| You want                                                   | Use        | Payout shape                                                      |
| ---------------------------------------------------------- | ---------- | ----------------------------------------------------------------- |
| All-or-nothing at a chosen multiple                        | **Strike** | Win `M × B` with probability `EV / M`, else 0                     |
| A guaranteed payout somewhere in a band                    | **Range**  | Continuous draw in `[P_min, P_max]`                               |
| Custom discrete outcomes (dice-style, prize tables, slots) | **Ladder** | One of up to 16 buckets, each with its own payout and probability |

## Strike — binary

Pick a stake `B` and a multiple `M` (as `multipleBps`). You win `W = M × B` or lose the stake.

```text Formulas theme={"theme":"css-variables"}
W = M × B
P(win)  = EV × B / W  =  EV / M
P(lose) = 1 − P(win)
```

Higher multiples mean lower win probability — the product always resolves to `EV × B` expected payout. The multiple you can pick is capped live by [`effectiveMaxMultiplierBps`](/protocol/bet-constraints), which shrinks from 100× toward 2× as bankroll liability fills up.

## Range — bounded always-payout

Pick a stake `B`, a floor `P_min`, and a ceiling `P_max`. Settlement **always pays something** in `[P_min, P_max]`.

```text Formulas theme={"theme":"css-variables"}
E[payout] = EV × B
Constraint: P_min ≤ EV × B ≤ P_max
```

The shipped distribution is a continuous power-law: `P = P_min + (P_max − P_min) × U^α`, where `U` is uniform from the bet's entropy and `α` is solved so the mean lands on `EV × B`. It is not binned — discrete buckets belong to Ladder.

<Warning>
  **"Always wins" ≠ always profits.** If your floor `P_min` is below your stake, many outcomes pay out less than you put in. A Range bet with a non-zero payout on every roll still carries the full 15% house edge.
</Warning>

## Ladder — multi-bucket

Pick a stake `B` and up to 16 mutually exclusive buckets: `payouts[i]` (USDG payout if bucket *i* hits) and `massWad[i]` (probability mass in WAD, 1e18 = 100%).

```text Formulas theme={"theme":"css-variables"}
Σ massWad[i] = WAD (1e18)
Σ massWad[i] × payouts[i] / WAD = EV × B    // exact integer identity
liability = max(payouts)
```

Settlement samples `u = entropy % WAD` and pays the first bucket whose cumulative mass covers `u`. The contract enforces the EV identity **exactly** in integer math — invalid mass sums, zero-mass buckets, or EV mismatches revert `InvalidOdds`. See [Bet constraints](/protocol/bet-constraints) for how clients snap float probabilities onto the identity.

Ladder is the general-purpose mode: a classic dice or wheel game is just a Ladder with the right buckets.

## Onward

* [Bet constraints](/protocol/bet-constraints) — the gates each place call must pass
* [Placing bets](/integrate/placing-bets) — building the actual call args
