Overview
Fill existing market-maker orders for options on-chain without needing a counterparty.
What is OptionBook?
OptionBook is the order-book side of the Thetanuts protocol. Market makers post signed orders for options (vanilla PUTs/CALLs, spreads, butterflies, condors, and iron condors on ETH and BTC). As a taker, you browse those orders, pick one you like, and fill it in a single transaction.
The number of strikes in order.strikes[] tells you the product type:
1 strike = Vanilla (PUT or CALL)
2 strikes = Spread
3 strikes = Butterfly
4 strikes = Condor or Iron Condor
Collateral is paid upfront by the taker. All OptionBook options are cash-settled: at expiry, the payout is calculated based on the difference between the strike price and the settlement price (Chainlink oracle), and paid out in the collateral token:
PUT options: Collateral and payout in USDC
CALL options (Inverse Call): Collateral and payout in the underlying token (WETH for ETH, cbBTC for BTC)
No physical delivery of assets occurs. For physically settled options (actual delivery of underlying at expiry), use RFQ/Factory instead.
OptionBook vs RFQ
OptionBook
RFQ (Factory)
What
Fill existing market-maker orders
Create custom options via sealed-bid auction
When to use
Quick trades on listed options (vanilla and multi-leg)
Custom options via sealed-bid auction: any strike, any expiry, cash-settled or physically settled
Structures
Vanilla, spread, butterfly, condor, iron condor (cash-settled)
Vanilla, spread, butterfly, condor, iron condor (cash-settled or physically settled for vanilla)
Key methods
fillOrder(), previewFillOrder()
buildRFQRequest(), requestForQuotation()
Pricing
Order prices from fetchOrders()
MM pricing from getAllPricing()
Data source
Book indexer (/api/v1/book/)
Factory indexer (/api/v1/factory/)
User data
getUserPositionsFromIndexer()
getUserRfqs(), getUserOptionsFromRfq()
Stats
getBookProtocolStats(), getBookDailyStats()
getFactoryProtocolStats(), getFactoryDailyStats()
Collateral
Paid upfront by taker
collateralAmount = 0 (held by factory)
Settlement
Cash-settled (payout in USDC/WETH/cbBTC based on price difference at expiry)
Cash-settled by default; physically settled optional via buildPhysicalOptionRFQ()
Both OptionBook and RFQ create cash-settled options using the same on-chain implementation contracts (PUT, INVERSE_CALL, spreads, etc.). The difference is how you get there:
OptionBook: Fill a pre-priced order instantly. The strike, expiry, and price are already set by the maker.
RFQ: Request your own custom strike and expiry. Market makers compete via sealed-bid auction (~60 seconds for offers).
If OptionBook has an order matching your trade, use it. It's faster. Use RFQ when you need parameters that aren't currently listed.
Core Flow
Every OptionBook trade follows the same four steps:
Quick Example
OptionBook Implementations
All OptionBook options are cash-settled. The implementation address on each order determines the product type:
Vanilla PUT
PUT
0xF480F636301d50Ed570D026254dC5728b746A90F
Vanilla CALL
INVERSE_CALL
0x3CeB524cBA83D2D4579F5a9F8C0D1f5701dd16FE
Call Spread
CALL_SPREAD
0x4D75654bC616F64F6010d512C3B277891FB52540
Put Spread
PUT_SPREAD
0xC9767F9a2f1eADC7Fdcb7f0057E829D9d760E086
Call Butterfly
CALL_FLY
0xD8EA785ab2A63a8a94C38f42932a54A3E45501c3
Put Butterfly
PUT_FLY
0x1fE24872Ab7c83BbA26Dc761ce2EA735c9b96175
Call Condor
CALL_CONDOR
0xbb5d2EB2D354D930899DaBad01e032C76CC3c28f
Put Condor
PUT_CONDOR
0xbdAcC00Dc3F6e1928D9380c17684344e947aa3Ec
Iron Condor
IRON_CONDOR
0x494Cd61b866D076c45564e236D6Cb9e011a72978
These are the addresses returned by config.implementations. Orders from fetchOrders() may reference these or earlier implementation versions. The SDK handles both transparently.
Data Source
OptionBook orders come from the Book indexer at /api/v1/book/. The SDK abstracts this — you call client.api.fetchOrders() and receive typed OrderWithSignature objects with pre-computed Greeks and metadata.
Module Access
All OptionBook operations go through two modules:
client.api
Fetch orders, positions, stats (read-only, no signer)
client.optionBook
Fill/cancel orders, claim fees (write ops require signer)
See Also
Last updated

