MM Pricing Overview

Fetch indicative market maker prices with fee adjustments and collateral carrying costs for vanilla options and multi-leg structures.

Overview

The MMPricingModule fetches prices from market makers and applies two adjustments:

  1. Fee Adjustment - Widens the bid-ask spread to account for exchange fees

  2. Collateral Carrying Cost - Adds the opportunity cost of capital for short positions

Importing

import {
  MMPricingModule,
  applyFeeAdjustment,
  calculateCollateralCost,
  parseTicker,
  buildTicker,
  COLLATERAL_APR,
} from '@thetanuts-finance/thetanuts-client';

Module Initialization

import { ThetanutsClient } from '@thetanuts-finance/thetanuts-client';

const client = new ThetanutsClient({ chainId: 8453 });
const mmPricing = client.mmPricing;

Fee Adjustment Formula

Market maker prices are adjusted to account for exchange fees:

  • Ask price: feeAdjustedAsk = rawAsk + feeAdjustment

  • Bid price: feeAdjustedBid = rawBid - feeAdjustment

The adjustment is capped at 0.0003 (0.03% of 1 contract) to prevent excessive spread widening for high-premium options.


Collateral Carrying Cost

Short positions require locked collateral with an opportunity cost. The SDK applies per-asset APR rates:

Asset
APR

BTC

1%

ETH

4%

USD

7%

Where timeToExpiry is expressed in years.


getAllPricing

Fetches all option prices for an underlying asset, grouped by expiry.


getTickerPricing

Fetches fee-adjusted pricing for a specific option ticker. Returns per-collateral breakdowns.


getPricingArray

Convenience wrapper that flattens getAllPricing(...) into a single sorted, non-expired array. Useful when you want to paginate or filter across all expiries at once instead of walking the nested expirations[] shape.

For richer slicing (by date range, strike range, type), pair this with the helpers in Filters & Utilities.


MMPricingModule Method Table

Method
Description
Signer Required

getAllPricing(underlying)

All pricing for ETH/BTC

No

getTickerPricing(ticker)

Pricing for specific ticker

No

getPositionPricing(params)

Long/short pricing with collateral cost

No

getSpreadPricing(params)

2-leg spread pricing

No

getButterflyPricing(params)

3-leg butterfly pricing

No

getCondorPricing(params)

4-leg condor pricing

No

filterExpired(pricing[])

Filter out expired options

No

sortByExpiryAndStrike(pricing[])

Sort by expiry, then strike

No

getUniqueExpiries(pricing[])

Get unique expiry dates

No

filterByType(pricing[], isCall)

Filter calls or puts

No

filterByExpiry(pricing[], date)

Filter by expiry date

No

filterByStrikeRange(pricing[], min, max)

Filter by strike range

No

getPricingArray(underlying)

Sorted, non-expired pricing array

No


Price Components Summary

Component
Description
Applies To

Raw Price

Market maker's base price

All

Fee Adjustment

Exchange fee spread widening

All

Collateral Cost

Cost of capital for short positions

Short only

Final Ask (buying/going long):

Final Bid (selling/going short):


See Also

Last updated