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

# Products

> The four products you can trade on OCX — perpetuals, dated futures, options, and spot — how each one works, and how instruments are named.

OCX offers four products across two engines. Perpetuals and dated futures trade on the linear (perp) engine; options and spot trade on the central limit order-book engine. Every product settles in USDC.

<CardGroup cols={2}>
  <Card title="Perpetuals" icon="infinity" href="#perpetuals">
    Non-expiring contracts that track an underlying index, kept in line by periodic funding.
  </Card>

  <Card title="Dated futures" icon="calendar" href="#dated-futures">
    Contracts with a fixed expiry that settle to the underlying, priced off spot plus cost of carry.
  </Card>

  <Card title="Options" icon="chart-line" href="#options">
    Calls and puts on an underlying, quoted from a fitted volatility surface with live Greeks.
  </Card>

  <Card title="Spot" icon="coins" href="#spot">
    Direct exchange of an asset against USDC on the order book.
  </Card>
</CardGroup>

## Perpetuals

A perpetual ("perp") is a contract that never expires and tracks the price of an underlying asset. Because there is no settlement date, OCX uses a **funding** mechanism to keep the perp trading close to its index: funding is exchanged periodically between longs and shorts based on the gap between the perp's mark price and its index. See the [Methodology](/methodology/perpetuals) section for how mark, index, and funding are derived.

Every perp references an index market (returned as `indexMarketId`) and publishes a live `markPrice`, 24-hour statistics, open interest, and the current funding rate through [market data](/api-reference/market-data) endpoints.

## Dated futures

A dated future is like a perpetual but with a fixed **expiry**. It settles to the underlying at expiry and, until then, trades at a premium or discount to spot that reflects the cost of carry to that date. Expired futures are automatically removed from the market list.

Perpetuals and dated futures share the **same order API** — a dated future is simply a market that carries an `expiry` field. Anything you can do on a perp (limit/market orders, quotes, positions) you can do on a dated future.

<Note>
  Fair value, contango/backwardation, and convergence to spot at expiry are explained conceptually in [Methodology → Futures](/methodology/futures).
</Note>

## Options

OCX lists European-style **calls and puts** on supported underlyings. Instead of publishing raw, sparse quotes, OCX fits an implied-volatility surface across strikes for each expiry, so every listed strike gets a smooth, arbitrage-consistent `bid`, `ask`, and `mark` along with live Greeks (`iv`, `delta`).

Each expiry is priced off its own **forward** — the market's expected future price of the underlying for that date. The full chain, per-expiry forwards, and the volatility surface are available through the [options board](/api-reference/market-data) and its live stream.

The tradable prices are always the central limit order book. Board marks and the IV surface are published for **reference and risk**, distinct from the order book you actually trade against.

<Tip>
  OCX also publishes a 30-day implied-volatility index (DVOL) per underlying, useful as a single gauge of expected volatility.
</Tip>

## Spot

Spot trading is the direct exchange of an asset against USDC on the same order-book engine as options. Spot inventory is tracked per asset in your `spot` balance bucket rather than as USDC collateral. Use the [spot order endpoints](/api-reference/trading) to trade and `GET /wallet/assets` to see your per-asset inventory.

## Instrument naming

Instruments are identified by an `id`/`symbol` returned from the market-data endpoints. Rather than hardcoding symbols, discover them from the live catalog.

<CodeGroup>
  ```bash Perp & linear markets theme={null}
  curl "https://<api-host>/perps/markets"
  ```

  ```bash Options board theme={null}
  curl "https://<api-host>/markets/board?underlying=BTC"
  ```
</CodeGroup>

A linear market entry looks like this:

```json theme={null}
{
  "id": "BTC-PERP",
  "symbol": "BTC-PERP",
  "marketType": "perp",
  "baseSymbol": "BTC",
  "quoteSymbol": "USDC",
  "markPrice": "68210.5",
  "priceDecimals": 2,
  "sizeDecimals": 4,
  "indexMarketId": "BTC-USDC-SPOT"
}
```

<ResponseField name="marketType" type="string">
  One of `spot`, `perp`, or `future`. Dated futures also carry an `expiry`.
</ResponseField>

<ResponseField name="priceDecimals / sizeDecimals" type="number">
  The tick and step precision for the market. Respect these when placing orders.
</ResponseField>

<ResponseField name="markPrice" type="string">
  Current mark, returned as a decimal string. All monetary and size values are decimal strings to preserve precision.
</ResponseField>

Option instruments encode the underlying, expiry date, strike, and type (call/put) in their id — for example `BTC-2026-05-15-40000-C`. Always read the exact id from the board rather than constructing it by hand.
