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

# Rounds and markets

> 60-second binary markets, and the identifier that is safe to cache.

Omnibook runs a continuous series of 60-second rounds on the BTC price. Each
round fixes a **strike**, trades for its window, then freezes and settles
against the oracle price.

## Lifecycle

| `status`   | Orders? | Meaning                                        |
| ---------- | ------- | ---------------------------------------------- |
| `trading`  | **Yes** | Open for trading                               |
| `frozen`   | No      | Trading closed, awaiting settlement            |
| `proposed` | No      | Settlement proposed, awaiting finalization     |
| `settled`  | No      | `winner` decided, contracts paid               |
| `void`     | No      | Round voided — contracts split per venue rules |

Anything still resting when a round freezes is cancelled for you.

## `round_number` vs `market_id`

<Warning>
  **`market_id` is recycled. `round_number` is not.**

  The venue draws `market_id` from a small pool and reuses values as rounds
  complete, so the same `market_id` will refer to a different round later. It is
  the parameter that order and orderbook endpoints take, but it is *not* an
  identity.

  Key your own state — open orders, positions, PnL history — on `round_number`,
  which is monotonic and never reused. Re-read the round before acting on a cached
  `market_id`, or you will eventually place an order on the wrong round.
</Warning>

## Prices

`strike` and `settle_price` are integers in units of 1e-8 USD. A `strike` of
`6399240000000` is \$63,992.40.

Contract prices are different: integer **ticks** from 1 to 99, in cents,
representing implied probability. See
[Placing orders](/quickstart/place-order).

## Settlement

At freeze, the round's **settle price** is a true time-weighted average (TWAP)
of the sequenced oracle BTC price over the last **N** seconds of the round
(default **N = 10**, or per-series via `twap_window_by_category`; each round
row exposes the resolved `twap_window_secs`).
`winner` becomes `"yes"` if that TWAP is **strictly above** the strike, `"no"`
otherwise (exact equality settles `"no"`). Winning contracts pay 100¢, losing
ones 0¢.

`fresh_source_count_at_freeze` reports how many independent price sources were
live at freeze — useful if you want to weight your confidence in a settlement.

## Reading rounds

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /v1/rounds?limit=1        # the current round
GET /v1/rounds/{round}        # one round
GET /v1/markets?status=trading
```

`GET /v1/rounds?limit=1` returning `status: "trading"` is the normal way to find
what to trade right now.

## Categories

`category` groups rounds into series. Today the BTC 60-second series is
category 1. Filter on it if you only care about one series.
