> For the complete documentation index, see [llms.txt](https://docs.overtime.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overtime.io/overtime-casino/games/table-games/roulette.md).

# Roulette

## Roulette

European single-zero roulette, fully onchain. Every spin is resolved by a single Chainlink VRF random word.

***

### How it works

The Overtime Roulette contract implements a **European wheel with 37 pockets** (0 through 36). When you place a bet, the contract:

1. Pulls your collateral and validates your selection
2. Reserves the worst-case payout against the bankroll
3. Requests a random word from Chainlink VRF
4. On fulfillment, computes the result as `randomWords[0] % 37`
5. Pays out winning bets and transfers them to your wallet immediately

There is no PRNG seed managed by the operator. There is no "house variance adjustment." 0 through 36, uniformly, sourced from a decentralized oracle network.

***

### Bet types and payouts

| Bet type        | Selection              | Payout (profit) | Total return on win |
| --------------- | ---------------------- | --------------- | ------------------- |
| **Straight**    | A single number, 0–36  | 35 : 1          | 36× stake           |
| **Red / Black** | Color                  | 1 : 1           | 2× stake            |
| **Odd / Even**  | Parity (excluding 0)   | 1 : 1           | 2× stake            |
| **Low / High**  | 1–18 or 19–36          | 1 : 1           | 2× stake            |
| **Dozen**       | 1–12, 13–24, or 25–36  | 2 : 1           | 3× stake            |
| **Column**      | 1st, 2nd or 3rd column | 2 : 1           | 3× stake            |

A spin of `0` loses every outside bet (Red/Black, Odd/Even, Low/High, Dozen, Column). Only a Straight bet on 0 wins on a zero spin.

***

### Multi-pick bets

You can place up to **10 picks on a single spin**, all sharing one Chainlink VRF request. This is the equivalent of dropping multiple chips on the felt before the dealer waves their hand.

For example, in one bet you can stake:

* 10 USDC on Red
* 5 USDC on Dozen 1
* 2 USDC Straight on number 17

When the wheel result is revealed, every pick is evaluated against it. Winning legs are paid, losing legs are not. The contract correctly handles cases where mutually exclusive picks (e.g. Dozen 1 + Dozen 2) appear in the same multi-bet — the bankroll reservation only covers the maximum possible payout across all 37 outcomes, not the sum of all picks.

***

### Limits

| Parameter                   | Value                                                |
| --------------------------- | ---------------------------------------------------- |
| Minimum bet                 | 3 USD per pick (normalized via Chainlink price feed) |
| Maximum picks per multi-bet | 10                                                   |
| Maximum profit per bet      | Set per deployment (`maxProfitUsd`)                  |
| Cancel timeout              | 30 seconds minimum (in case of VRF stall)            |

Supported collaterals: **USDC**, **WETH**, **$OVER**.

***

### User guide

#### 1. Log In to Overtime

Visit **overtimemarkets.xyz/casino** and Log In.

#### 2. Pick the Roulette table

Select **Roulette** from the casino lobby.

#### 3. Choose your collateral

Switch between USDC, WETH and $OVER from the collateral selector. The minimum-bet floor is enforced in USD, so the equivalent collateral amount adjusts automatically based on the Chainlink price feed.

<figure><img src="/files/GKSKp9gxIXXeCAJRa2EV" alt=""><figcaption></figcaption></figure>

#### 4. Input your desired buy-in amount per chip

In the `Enter amount` input field, enter the buy-in amount you want to bet with per chip.

#### 5. Place chips on the table

Click any betting area on the roulette layout: a number for a Straight bet, a color box for Red/Black, the dozen or column markers for outside bets. Each click drops a chip equal to your selected stake amount. You can stack up to 10 picks on a single spin.

<figure><img src="/files/ZjuA13YQ6ryzLmoGnb8T" alt=""><figcaption></figcaption></figure>

#### 6. Spin

Hit **Spin**.

After the bet is confirmed onchain, your bet enters `PENDING` while the contract waits for the VRF callback. This typically takes a few seconds.

#### 7. Result

When Chainlink fulfills the randomness, the wheel result is revealed. Winning picks pay out automatically in the same transaction. You can see the resolved bet and the payout in your bet history, and on a block explorer if you want to verify it directly.

#### Cancelling a stuck bet

If a spin somehow doesn't resolve within the cancel timeout (very rare, but possible if Chainlink fulfillment is delayed), you can cancel the bet from your bet history and recover your full stake. No customer support ticket required.

***

### Free bets

If you have an Overtime free-bet balance, the Roulette interface will offer a "Use free bet" toggle on supported collaterals. Free-bet roulette bets work identically to staked bets — they call `placeBetWithFreeBet` instead of `placeBet`, and any winnings are settled through the existing Overtime free-bets infrastructure.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.overtime.io/overtime-casino/games/table-games/roulette.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
