Options: contracts

Symbology, contract specs, capped payouts, marks and implied vol, fees and the contract lifecycle.

1024EX options are cash-settled, USDC-collateralized contracts on the same underlyings as the perp venue — US equities and ETFs plus BTC, 106 underlyings and roughly 24,000 live contracts at the time of writing. GET /api/v1/options/underlyings is the live list. There is no physical delivery, no separate options wallet, and no per-leg wallet signature: the same API key trades both venues.

Two structural facts shape everything else on this page:

  • Payout is capped. Every contract carries maxPayoutPerUnitE6. For puts it is the strike (a put can never be worth more than the strike). For calls it defaults to the strike as well, which makes a long call economically a capped call spread rather than unlimited upside — the chain reports this honestly as "greeksStructure": "capped_call_spread".
  • Writers post full collateral. Selling to open locks maxPayoutPerUnit × qty in USDC. There is no margin offset and no naked short. Sell-to-open is additionally gated by an allowlist (WRITER_NOT_ALLOWED); buying, and selling to close a long, are open to every account.

Symbology

<TICKER>-<YYYYMMDD>-<STRIKE>-<C|P>

AAOI-20260925-93-C      AAOI 93 call expiring 2026-09-25
BTC-20260925-81000-C    BTC 81,000 call expiring 2026-09-25

The ticker segment has no -USDC; the underlying field on the contract does ("underlying": "BTC-USDC"). The date is the UTC expiry day. Never build symbols by hand — list them (see Options: market data).

Contract specs

Every row of GET /api/v1/options/markets and GET /api/v1/options/chain carries its own trading rules:

{
  "symbol": "BTC-20260925-81000-C",
  "underlying": "BTC-USDC",
  "optionType": "call",
  "strikePriceE6": 81000000000,
  "expiryTime": "2026-09-25T08:00:00Z",
  "status": "active",
  "sessionBound": false,
  "contractMultiplierE6": 1000000,
  "maxPayoutPerUnitE6": 81000000000,
  "tickSizeE6": 10000,
  "lotSizeE6": 1000,
  "minOrderSizeE6": 1000,
  "minNotionalE6": 1000000,
  "makerFeeRateE6": 200,
  "takerFeeRateE6": 500,
  "settlementFeeRateE6": 300,
  "feeBasis": "premium",
  "settlementBasis": "payout",
  "settlementFeeCapBps": 1250,
  "noNewOpenWindowMs": 300000
}
FieldMeaning
strikePriceE6strike × 10⁶ — 81000000000 is a strike of 81,000
contractMultiplierE6units of underlying per contract, E6 (1000000 = 1)
maxPayoutPerUnitE6payout ceiling per unit, and the writer's collateral per unit
tickSizeE6premium price increment; priceE6 must be an exact multiple
lotSizeE6 / minOrderSizeE6quantity grid and floor, in E6 contracts
minNotionalE6minimum premium notional per order (1000000 = $1)
sessionBoundtrue for equity underlyings — tradable only during their market session
noNewOpenWindowMsopening trades stop this long before expiry (300000 = last 5 minutes)
statusactive, paused, trading_halted, settled, cancelled

Tick size is per contract, not per underlying. On the same expiry, a $93 call and a $93 put can carry tickSizeE6 of 10000 and 100 respectively. Read the row; do not cache one tick size for a chain.

Marks, IV and Greeks

Each contract publishes a mark independent of its book — this is what unrealized PnL, TP/SL triggers and risk are computed from:

FieldMeaning
markPriceE6mark premium per unit
markSourcemassive = vendor mid (preferred) — otherwise model-priced
markIvE6implied vol, E6 (383619 = 38.36%)
markUncertaintyE6the venue's own confidence band on that mark
delta, gamma, vega, thetaPerDayBlack-Scholes Greeks, floats; thetaPerDay is per calendar day
greeksStructurehow the Greeks were derived — capped_call_spread reflects the payout cap

When an external vendor quote exists, the mark is the vendor mid. When it does not (BTC and other crypto underlyings), the mark is model-priced from the venue's own vol surface. Two practical consequences: deep out-of-the-money and near-expiry contracts can carry a model mark above where anyone would trade, and a contract can have a valid mark with an empty book.

Fees

FieldApplies toValue in the example
makerFeeRateE6resting fills200 = 2 bps of premium
takerFeeRateE6aggressing fills500 = 5 bps of premium
settlementFeeRateE6settlement payout300 = 3 bps
feeBasiswhat the trading fee is charged onpremium
settlementBasiswhat the settlement fee is charged onpayout
settlementFeeCapBpsceiling on the settlement fee1250 = 12.5%

For an exact, account-specific number before you trade, ask the venue:

POST /api/v1/options/fee-quote
{ "symbol": "BTC-20260925-81000-C", "side": "buy", "priceE6": 5242947379, "qtyE6": 1000000 }

The quote applies your VIP tier and any reduce-only waiver, so it beats recomputing rates client-side.

Contract lifecycle

PhaseWhat is possible
activeopen and close freely
last noNewOpenWindowMs before expiryclosing trades only — no new opens
paused / trading_haltedno trading; manual exercise may still be possible while paused
at expirytrading stops, the settlement price is fixed, positions settle automatically
settledcash has moved; nothing further to do
cancelledmarket voided — writers get their full collateral back, longs get nothing

Before expiry, American-style manual exercise is available — see Options: exercise and settlement.


Did this page help you?