Trion Documentation V2 · Live on Robinhood Chain
Browse documentation

Options

In one paragraph: A Trion option is a capped, cash-settled, fully collateralized contract on the CMPT index. Options V3 lists a fixed chain of strikes and expiries and lets any trader write (sell) or buy them at a price of their own choosing through an order book. Every short contract is backed on chain by its full maximum payout, so there are no margin calls, no liquidations and no counterparty risk for buyers. Trion's own market maker quotes on the same book as everyone else and has no privileges. Buyers can lose the premium and fees; writers can lose the full width of every contract they are short. Collateral, contract, oracle and governance risks remain, and the contracts are not independently audited.

Where things stand: the status page is the single list of what is live. The V3 exchange address and its listed series are recorded in the verified manifest overdrive/deployments/v3/4663.options-v3.json and shown on the desk's Transparency page; do not use an address from anywhere else. The earlier V2 pool options remain live until their 2026-10-30 expiry (below). Collateral is USDG (six decimals) on Robinhood Chain (4663).

A capped call's payout rises from the strike and flattens at the cap; the buyer's loss is limited to the premium

The contract

One contract (1 CT) is one capped spread on the CMPT index with width W = $0.50. At expiry it pays, per contract:

X is the settlement fixing described under Life of a series. Payouts are paid in USDG, rounded down to the atom. Whole contracts only; the payout arithmetic is OptionMathV2.calculatePayoff, the same as V2.

TermMeaning
SeriesOne market, kind, strike, cap and expiry. Its id is keccak256(abi.encode(chainId, exchange, marketId, kind, strike, cap, expiry))
Strike KPrice where the payout starts
Cap (call) / floor (put)Price where the payout stops growing: K ± 0.50
Width WThe maximum payout per contract, $0.50, and the collateral locked per short contract
TickPrices are quoted in USDG per contract in steps of $0.001; 0 < price ≤ 0.50
Expiry08:00 UTC; the end of the 24 h averaging window that determines X
Trading endExpiry − 24 h. No fill can settle at or after it

The listed chain

Governance lists series; nobody else can, and traders choose among the listed ones. The reviewed launch chain (overdrive/deployments/v3/reviewed/4663.chain.json, whose keccak256 is recorded in the manifest as reviewedChainHash) is:

Each series freezes the CMPT methodology hash from the market registry and the fixing recipe from the price verifier at listing, and can only settle against a fixing produced under that recipe.

Prices come from the book, not from a model

There is no issuer and no engine price. Every price on the screen is a resting order that some trader signed. The desk also shows a Fair column and Greeks: these are the Black-76 value of the capped spread computed from the verifier's current index mark and the volatility published by OptionPricerV2 (floored at that contract's sigmaFloor, 24% for CMPT). Fair and the Greeks are model values, not tradable prices; nothing is ever executed at them, and a bid or ask far from Fair is simply what someone is willing to pay or accept.

Fills happen at the resting (maker) order's price, in price-time priority per series, when an incoming order crosses it. Trion's market maker (overdrive/exchange/options-book/src/mm) rests two-sided quotes around Fair; it uses only the public API and has the same rights as any other account.

Buying, writing and closing

Each account has one signed position per series: positive when long, negative when short. Orders are simply buys and sells; the contract nets them:

So closing a position is just an order on the other side, at any price the book will give you, at any time before trading ends. A REDUCE_ONLY flag on an order guarantees it can only close: a reduce-only buy is skipped unless you are short at least that quantity, a reduce-only sell unless you are long at least that quantity. Positions are ledger entries in the exchange, not tokens; they cannot be transferred.

On the desk

The Options page (Order book venue; a Pool (V2) link switches to the older series) shows one Expiry at a time as an option chain: CALLS on the left, the Strike column in the middle, PUTS on the right, each side with Bid, Ask, Last, OI, Fair/Model, Delta, Gamma, Theta/day and Vega/vol-pt; in-the-money cells are shaded. Clicking a Bid cell prepares a Sell / Write at that price, an Ask cell a Buy; the Order book panel beside the chain (price, CT, cumulative) and Recent trades do the same. The Order ticket has Call/Put and Strike selectors, Buy / Sell / Write tabs, Limit or Market · IOC, Quantity · whole CT, Limit price · USDG / CT with one-tick steppers, Post-only and Reduce-only boxes (Advanced layout), and a preview: premium, fee bound, new collateral to lock, max loss and max profit for this order, breakeven fixing and available cash after reservation. A market order is an IOC signed at a guard price within 10% of the best opposite level; if there is no opposite level it is refused. Orders are signed in your wallet, not sent as transactions; the response line reports matched and remaining quantity and each fill's status until it is confirmed on chain. The Simple layout keeps only the market ticket. Below: Positions (side, CT, average entry, mark, unrealized P&L, locked USDG, a Close button that prepares a reduce-only IOC for the whole position), Open orders (with Cancel and Cancel all open orders), Fills (fee, status or skip reason, transaction) and Settlement (payout per contract and a Settle account button for settled series you still hold).

Collateral: cash, locked and free

You deposit USDG into the exchange (deposit; on the desk, Deposit in the account strip opens Deposit USDG with Approve and deposit, approving only that amount) and withdraw free cash at any time (withdraw; Withdraw on the desk, limited to your available cash after open-order reservations; allowed even while the exchange is paused). The account strip shows Cash, Locked, Reserved, Available, Account cap and Total cash / cap. For each account:

locked = Σ over series of  max(0, −position) × $0.50
free   = cash − locked

A buyer pays premium plus fee from free cash. A writer receives the premium into cash and has $0.50 per new short contract added to locked; the fill is skipped, not partially applied, if cash + premium would not cover locked + new lock + fee. Because every short is backed by its worst case from the moment it is opened, there is nothing to margin-call and nothing to liquidate, whatever the index does before expiry. The book service additionally reserves, against your free cash, the worst case of your open orders so that it never accepts an order it could not settle (Options API has the formula).

Deposit caps while unaudited: at most 5,000 USDG of cash per account, and 50,000 USDG of custody in total across the exchange, where custody is booked cash plus settlement payouts not yet converted into cash by settleAccounts. Both are adjustable by governance. A deposit that would exceed either is rejected, and a deposit reverts unless exactly the stated amount arrives in the exchange.

Fees

RateNotes
Maker (resting order)0 bps
Taker (incoming order)100 bps = 1% of the premiumRounded up to the atom per fill
Contract maximum500 bps for either sideGovernance cannot set a fee above 5%

Each order signs maxFeeBps, the most its trader accepts; a fill whose fee for that side would exceed it is skipped rather than charged. Fees are deducted from cash at the fill and accrue to the exchange (feesAccrued), which governance may withdraw. No governance function debits or withdraws trader cash; what governance does control is the fee rate, within each order's signed maxFeeBps, and, only in the governanceSettle fallback (72 h after expiry while the oracle is HALTED), the settlement price that decides how collateral moves between shorts and longs.

Worked example (hypothetical)

CMPT index $2.34 on 2026-09-25. You buy 100 CT of the 2.35 call expiring 2026-10-30 (cap $2.85) by taking a resting ask at $0.070:

Fixing XPayout per CTYou receiveYour net (after $7.07)Writer's net (kept $7.00)
$2.300$0−$7.07+$7.00
$2.45$0.10$10.00+$2.93−$3.00
$2.85 or above$0.50 (capped)$50.00+$42.93−$43.00

If, a week later, a bid at $0.120 appears and you sell 100 CT into it, the sale closes your long (it does not open a short): you receive $12.00 minus a $0.12 taker fee, and the position is flat. The writer's $50 stays locked until someone buys their short back from them or the series settles.

Life of a series

flowchart LR
  L[Listed] -->|trading| T[Trading end: expiry − 24 h]
  T -->|24 h averaging window| E[Expiry 08:00 UTC]
  E -->|fixing proposed, 24 h challenge window| F[Final fixing]
  F --> S[settleSeries → settleAccounts]
  E -->|no fixing after 72 h| V[severSeries / governanceSettle]
  V --> S
  1. Trading, from listing until tradingEnd = expiry − 24 h. The book service stops accepting orders 30 s before that and cancels what is resting; on chain, any fill at or after tradingEnd is skipped.
  2. Averaging. The last 24 hours before expiry are the fixing window. You hold what you have; nothing can be opened or closed.
  3. Fixing. X is the same fixing V2 uses: the 24 h time-weighted average of the published CMPT index, sampled every five minutes in the window ending at expiry, under the series' frozen recipe. The oracle signers sign it, a bonded relayer proposes it to FixingCouncilV2, and after the 24-hour challenge window (or council resolution of a challenge) it is final in TrionPriceVerifierV2.getFixing. See the benchmark statement for who may challenge and how.
  4. Settlement. Once the fixing is final, anyone may call settleSeries, which records the payout per contract (SeriesSettled). Then settleAccounts(seriesId, accounts), also callable by anyone, turns positions into cash: a long of p contracts gains p × payout; a short pays p × payout from cash and has p × $0.50 unlocked. The book service's keeper does both automatically, in batches of 50 accounts; you do not need to claim anything, and there is no deadline.

If the fixing does not arrive

The fallbacks are the V2 rules, condition for condition (OptionEngineV2.severSeries / governanceSettle):

Either result is final and is flagged fallbackSettled; a later fixing does not rewrite it. This is not an automatic refund or a promised settlement date, and a writer can be charged the full width by a missing fixing even if the index never moved.

What can stop you trading

Perp versus capped option

PerpetualCapped option
ExpiryNoneFixed
Upfront costMargin (returnable)Premium (spent by the buyer, received by the writer)
Max lossBuyer: whole account, plus ADLBuyer: premium + fee. Writer: $0.50 per contract minus premium
Max gainUnboundedWidth × quantity
LiquidationYesNever; shorts are pre-funded in full
FundingHourlyNone

V2 pool options (until 2026-10-30)

The first CMPT options, live since 2026-09-23, are a different, older design that stays live until its 2026-10-30 08:00 UTC expiry and is then retired:

Mechanics, reserve rule, drawdown limit and pool fees are in Option pool liquidity; the fixing and fallback rules are the same as above. V2 balances do not migrate to V3: a V2 option is a token that settles under V2; a V3 position is a ledger entry in the V3 exchange.

Caveats

Source trail: overdrive/shared/v3/OPTIONS_V3.md §§1–3 (normative); overdrive/shared/v3/IOptionsExchangeV3.sol (OptionOrderV3, SeriesV3, settleFills, settleSeries, severSeries, governanceSettle, settleAccounts, OptionsV3.SEVER_DELAY_SECONDS, PENDING_GRACE_SECONDS, MAX_FEE_BPS); overdrive/exchange/core/src/v3.ts (payoffWad, payoutAtoms, feeAtoms, projectFill); overdrive/deployments/v3/reviewed/4663.chain.json; overdrive/src/v2/options/OptionMathV2.sol, OptionEngineV2.sol (V2 section and fallback rules); docs/spec/FIXING_ORACLE_V2.md §2.1 (fixing and dispute rules).

Repository-owned documentation · September 2026 · Educational material, not investment advice and not an audit.