# Options Chain (`options_chain`)

> Calls and puts by strike and expiry: quotes, mark implied volatility, open interest and volume. Reported data is separated from calculated metrics, with coverage and thin-market caveats.

- Category: Options
- MCP tool: `options_chain`
- REST: `GET /options/chain/{currency}`
- MCP App: hosts that support MCP Apps render the result as an interactive view
- x402 price: $0.01 per call (USDC on Base)
- HTML: https://www.f1ow.com/docs/tools/options_chain

## What it does

Crypto options chain for one underlying and expiry: calls/puts by strike with bid/ask/mark (native and USD), mark IV, calculated Black-76 delta, open interest (coins and USD notional) and 24h volume. Lists every available expiry. Underlyings: BTC and ETH (deep; inverse and USDC-linear books), SOL, XRP, HYPE, AVAX, TRX (USDC-linear, thin). Defaults: next expiry, strikes within ±10% of spot, both types.

## Parameters

| Name | Type | In | Required | Description |
| --- | --- | --- | --- | --- |
| `currency` | string | path | yes | Underlying symbol, e.g. "BTC", "ETH", "SOL". |
| `expiry` | string | query | no | "next" (default), a date like "2026-12-25", or an exchange code like "25DEC26". |
| `option_type` | string | query | no | Default both. One of: `call`, `put`, `both`. |
| `strike_min` | number | query | no | Lowest strike (USD). |
| `strike_max` | number | query | no | Highest strike (USD). |
| `moneyness_pct` | number | query | no | When no strike bounds are given: keep strikes within ± this % of spot. Default 10. |
| `limit` | integer | query | no | Max contracts returned, default 40, max 200. |

## Call it

### cURL

```bash
curl "https://mcp.f1ow.com/v1/options/chain/BTC?expiry=next&moneyness_pct=5&limit=20" \
  -H "Authorization: Bearer $F1OW_API_KEY"
```

### MCP

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "options_chain",
    "arguments": {
      "currency": "BTC",
      "expiry": "next",
      "moneyness_pct": 5,
      "limit": 20
    }
  }
}
```

### TypeScript

```ts
const res = await fetch("https://mcp.f1ow.com/v1/options/chain/BTC?expiry=next&moneyness_pct=5&limit=20", {
  headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);
```

### Python

```python
import os, requests

res = requests.get(
    "https://mcp.f1ow.com/v1/options/chain/BTC?expiry=next&moneyness_pct=5&limit=20",
    headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json()  # the tool's result as JSON, typed in the OpenAPI spec
print(data)
```

### WebSocket

```jsonc
// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "options_chain",
    "arguments": {
      "currency": "BTC",
      "expiry": "next",
      "moneyness_pct": 5,
      "limit": 20
    }
  }
}

// Or push a fresh result whenever it changes (minimum interval 15 s)
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "subscriptions/subscribe",
  "params": {
    "name": "options_chain",
    "arguments": {
      "currency": "BTC",
      "expiry": "next",
      "moneyness_pct": 5,
      "limit": 20
    },
    "intervalSeconds": 60
  }
}
```

### x402

```bash
# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/options/chain/BTC?expiry=next&moneyness_pct=5&limit=20"
```

## Sample response

Captured 2026-11-13. The JSON is what REST and WebSocket return and the `structuredContent` of an MCP call (trimmed):

```json
{
  "contracts": [
    {
      "ask": 0.0215,
      "askUsd": 1475.23626,
      "bid": 0.02,
      "bidUsd": 1372.3128,
      "contractSize": 1,
      "deltaCalculated": 0.727709462545573,
      "instrument": "BTC-14NOV26-67500-C",
      "mark": 0.02069699,
      "markIv": 52.41,
      "markUsd": 1420.1372149236,
      "openInterest": 0,
      "openInterestUsd": 0,
      "settlement": "inverse",
      "strike": 67500,
      "type": "call",
      "volume24h": 0,
      "volumeUsd24h": 0
    },
    {
      "ask": 0.0049,
      "askUsd": 336.216636,
      "bid": 0.0043,
      "bidUsd": 295.047252,
      "contractSize": 1,
      "deltaCalculated": -0.272290537454427,
      "instrument": "BTC-14NOV26-67500-P",
      "mark": 0.00464665,
      "markIv": 52.41,
      "markUsd": 318.832863606,
      "openInterest": 0,
      "openInterestUsd": 0,
      "settlement": "inverse",
      "strike": 67500,
      "type": "put",
      "volume24h": 0,
      "volumeUsd24h": 0
    },
    {
      "ask": 0.016,
      "askUsd": 1097.85024,
      "bid": 0.0145,
      "bidUsd": 994.92678,
      "contractSize": 1,
      "deltaCalculated": 0.638737147789735,
      "instrument": "BTC-14NOV26-68000-C",
      "mark": 0.01529956,
      "markIv": 49.81,
      "markUsd": 1049.7891011184,
      "openInterest": 0,
      "openInterestUsd": 0,
      "settlement": "inverse",
      "strike": 68000,
      "type": "call",
      "volume24h": 15.9,
      "volumeUsd24h": 14362.18
    },
    {
      "ask": 1100,
      "askUsd": 1100,
      "bid": 1040,
      "bidUsd": 1040,
      "contractSize": 1,
      "deltaCalculated": 0.638737147789735,
      "instrument": "BTC_USDC-14NOV26-68000-C",
      "mark": 1049.5660237,
      "markIv": 49.81,
      "markUsd": 1049.5660237,
      "openInterest": 0,
      "openInterestUsd": 0,
      "settlement": "linear",
      "strike": 68000,
      "type": "call",
      "volume24h": 0.38,
      "volumeUsd24h": 488.5
    },
    {
      "ask": 0.007,
      "askUsd": 480.30948,
      "bid": 0.006,
      "bidUsd": 411.69384,
      "contractSize": 1,
      "deltaCalculated": -0.362230596844979,
      "instrument": "BTC-14NOV26-68000-P",
      "mark": 0.00653774,
      "markIv": 49.81,
      "markUsd": 448.5912142536,
      "openInterest": 97.1,
      "openInterestUsd": 6662578.644,
      "settlement": "inverse",
      "strike": 68000,
      "type": "put",
      "volume24h": 267.2,
      "volumeUsd24h": 120402.06
    },
    {
      "ask": 460,
      "askUsd": 460,
      "bid": 425,
      "bidUsd": 425,
      "contractSize": 1,
      "deltaCalculated": -0.361262852210265,
      "instrument": "BTC_USDC-14NOV26-68000-P",
      "mark": 448.4960237,
      "markIv": 49.81,
      "markUsd": 448.4960237,
      "openInterest": 1.13,
      "openInterestUsd": 77535.6732,
      "settlement": "linear",
      "strike": 68000,
      "type": "put",
      "volume24h": 5.44,
      "volumeUsd24h": 3056.49
    },
    "… 14 more"
  ],
  "daysToExpiry": 0.996047164351852,
  "expiries": [
    "2026-11-14T08:00:00Z",
    "2026-11-15T08:00:00Z",
    "2026-11-16T08:00:00Z",
    "2026-11-17T08:00:00Z",
    "2026-11-20T08:00:00Z",
    "2026-11-27T08:00:00Z",
    "… 6 more"
  ],
  "expiry": "2026-11-14T08:00:00Z",
  "forwardUsd": 68607.96,
  "indexPriceUsd": 68615.64,
  "meta": {
    "ageSeconds": 1,
    "observedAt": "2026-11-13T08:05:40Z",
    "provider": "Deribit",
    "underlying": "BTC"
  },
  "metricSources": {
    "calculated": [
      "bidUsd",
      "askUsd",
      "markUsd",
      "openInterestUsd",
      "deltaCalculated"
    ],
    "reported": [
      "bid",
      "ask",
      "mark",
      "markIv",
      "openInterest",
      "volume24h",
      "… 4 more"
    ]
  },
  "units": {
    "markIv": "percent annualized",
    "nativePrice": "coin on inverse books, USDC on linear books",
    "openInterest": "underlying coins",
    "volume24h": "underlying coins"
  },
  "generatedAt": "2026-11-13T08:05:40Z"
}
```

Over MCP the text report a model reads comes with it:

```text
=== BTC options chain — Deribit ===
Observed 2026-11-13T08:05:40Z (1s ago) | spot index $68615.64
Expiry 14 Nov 2026 08:00 UTC (1.0d) | forward $68607.96 | expiry OI: calls 1.29K / puts 1.06K BTC ($160.9M), P/C 0.82
Listed expiries (12): 14 Nov 2026, 15 Nov 2026, 16 Nov 2026, 17 Nov 2026, 20 Nov 2026, 27 Nov 2026, 4 Dec 2026, 25 Dec 2026, 29 Jan 2027, 26 Mar 2027, 25 Jun 2027, 24 Sep 2027
Showing 20 of 44 contracts (±5% of spot; type both). Prices in USD (converted from coin on inverse books); Δ calculated (Black-76 on the forward, r=0).
Units: OI and volume in underlying coins (reported); USD notional = coins × spot index (calculated); IV in % annualized; premiums quoted in the coin on inverse books (BTC/ETH), in USDC on linear books.

  BTC-14NOV26-67500-C        inverse bid $1372.31 ask $1475.24 mark $1420.14 | IV 52.4 | Δ +0.73 | OI 0.00 BTC ($0) | vol24h 0.00
  BTC-14NOV26-67500-P        inverse bid $295.0473 ask $336.2166 mark $318.8329 | IV 52.4 | Δ -0.27 | OI 0.00 BTC ($0) | vol24h 0.00
  BTC-14NOV26-68000-C        inverse bid $994.9268 ask $1097.85 mark $1049.79 | IV 49.8 | Δ +0.64 | OI 0.00 BTC ($0) | vol24h 15.90
  BTC_USDC-14NOV26-68000-C   linear  bid $1040.00 ask $1100.00 mark $1049.57 | IV 49.8 | Δ +0.64 | OI 0.00 BTC ($0) | vol24h 0.38
  BTC-14NOV26-68000-P        inverse bid $411.6938 ask $480.3095 mark $448.5912 | IV 49.8 | Δ -0.36 | OI 97.10 BTC ($6.7M) | vol24h 267.20
  BTC_USDC-14NOV26-68000-P   linear  bid $425.0000 ask $460.0000 mark $448.4960 | IV 49.8 | Δ -0.36 | OI 1.13 BTC ($78k) | vol24h 5.44
  BTC-14NOV26-68500-C        inverse bid $686.1564 ask $789.0799 mark $736.4640 | IV 47.9 | Δ +0.53 | OI 0.00 BTC ($0) | vol24h 21.50
  BTC-14NOV26-68500-P        inverse bid $583.2329 ask $651.8486 mark $635.3726 | IV 47.9 | Δ -0.47 | OI 0.00 BTC ($0) | vol24h 2.10
  BTC-14NOV26-69000-C        inverse bid $446.0017 ask $514.6173 mark $481.6303 | IV 46.2 | Δ +0.41 | OI 0.00 BTC ($0) | vol24h 167.20
  BTC_USDC-14NOV26-69000-C   linear  bid $470.0000 ask $510.0000 mark $481.5282 | IV 46.2 | Δ +0.41 | OI 0.00 BTC ($0) | vol24h 0.10
  BTC-14NOV26-69000-P        inverse bid $823.3877 ask $926.3111 mark $880.6454 | IV 46.2 | Δ -0.59 | OI 114.90 BTC ($7.9M) | vol24h 290.00
  BTC_USDC-14NOV26-69000-P   linear  bid $840.0000 ask $900.0000 mark $880.4582 | IV 46.2 | Δ -0.59 | OI 11.11 BTC ($762k) | vol24h 23.11
  BTC-14NOV26-69500-C        inverse bid $274.4626 ask $308.7704 mark $290.2867 | IV 44.6 | Δ +0.29 | OI 0.00 BTC ($0) | vol24h 8.50
  BTC_USDC-14NOV26-69500-C   linear  bid $285.0000 ask $310.0000 mark $290.2250 | IV 44.6 | Δ +0.29 | OI 0.00 BTC ($0) | vol24h 0.00
  BTC-14NOV26-69500-P        inverse bid $1132.16 ask $1200.77 mark $1189.41 | IV 44.6 | Δ -0.71 | OI 0.00 BTC ($0) | vol24h 0.20
  BTC_USDC-14NOV26-69500-P   linear  bid $1080.00 ask $1240.00 mark $1189.15 | IV 44.6 | Δ -0.71 | OI 0.00 BTC ($0) | vol24h 0.00
  BTC-14NOV26-70000-C        inverse bid $150.9544 ask $185.2622 mark $165.3205 | IV 43.9 | Δ +0.19 | OI 3.00 BTC ($206k) | vol24h 33.00
  BTC_USDC-14NOV26-70000-C   linear  bid $155.0000 ask $180.0000 mark $165.2851 | IV 43.9 | Δ +0.19 | OI 0.00 BTC ($0) | vol24h 0.06
  BTC-14NOV26-70000-P        inverse bid $1509.54 ask $1612.47 mark $1564.55 | IV 43.9 | Δ -0.81 | OI 110.40 BTC ($7.6M) | vol24h 327.90
  BTC_USDC-14NOV26-70000-P   linear  bid $1480.00 ask $1620.00 mark $1564.22 | IV 43.9 | Δ -0.81 | OI 1.64 BTC ($113k) | vol24h 2.44
```

## Related tools

- [Implied Volatility](https://www.f1ow.com/docs/tools/options_volatility) — ATM volatility, term structure, implied move size, 25-delta skew and IV versus realized volatility. BTC/ETH volatility-index history adds context. What options price for the size of a move — not its direction.
- [Options Positioning](https://www.f1ow.com/docs/tools/options_positioning) — Put/call open interest, strike and expiry concentrations, expiring notional, theoretical max pain and recent option trades. One venue; aggregate open interest does not reveal who is long or short, and max pain is not a forecast.
- [Gamma & Hedge Scenarios](https://www.f1ow.com/docs/tools/options_gamma) — Modeled gamma exposure, walls, flip levels and an options regime, with price, time and volatility what-ifs. Dealer hedge ladders depend on an explicit positioning scenario — theoretical sensitivity, not observed dealer orders.
- [Options-Implied Odds](https://www.f1ow.com/docs/tools/options_probability) — Risk-neutral expiry probabilities above or below a price or inside a range, plus implied 68% and 90% ranges. Derived from options forwards and volatility, with smile adjustment where quoted — not calibrated real-world forecasts.
