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 × qtyin 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-25The 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
}| Field | Meaning |
|---|---|
strikePriceE6 | strike × 10⁶ — 81000000000 is a strike of 81,000 |
contractMultiplierE6 | units of underlying per contract, E6 (1000000 = 1) |
maxPayoutPerUnitE6 | payout ceiling per unit, and the writer's collateral per unit |
tickSizeE6 | premium price increment; priceE6 must be an exact multiple |
lotSizeE6 / minOrderSizeE6 | quantity grid and floor, in E6 contracts |
minNotionalE6 | minimum premium notional per order (1000000 = $1) |
sessionBound | true for equity underlyings — tradable only during their market session |
noNewOpenWindowMs | opening trades stop this long before expiry (300000 = last 5 minutes) |
status | active, 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:
| Field | Meaning |
|---|---|
markPriceE6 | mark premium per unit |
markSource | massive = vendor mid (preferred) — otherwise model-priced |
markIvE6 | implied vol, E6 (383619 = 38.36%) |
markUncertaintyE6 | the venue's own confidence band on that mark |
delta, gamma, vega, thetaPerDay | Black-Scholes Greeks, floats; thetaPerDay is per calendar day |
greeksStructure | how 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
| Field | Applies to | Value in the example |
|---|---|---|
makerFeeRateE6 | resting fills | 200 = 2 bps of premium |
takerFeeRateE6 | aggressing fills | 500 = 5 bps of premium |
settlementFeeRateE6 | settlement payout | 300 = 3 bps |
feeBasis | what the trading fee is charged on | premium |
settlementBasis | what the settlement fee is charged on | payout |
settlementFeeCapBps | ceiling on the settlement fee | 1250 = 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
| Phase | What is possible |
|---|---|
active | open and close freely |
last noNewOpenWindowMs before expiry | closing trades only — no new opens |
paused / trading_halted | no trading; manual exercise may still be possible while paused |
| at expiry | trading stops, the settlement price is fixed, positions settle automatically |
settled | cash has moved; nothing further to do |
cancelled | market voided — writers get their full collateral back, longs get nothing |
Before expiry, American-style manual exercise is available — see Options: exercise and settlement.
Updated 9 days ago
