Pricing & Calculation

Browse available strikes, calculate exact loan costs, and check promotional pricing eligibility.

Fetch Strike Options

getStrikeOptions() fetches live pricing from the Deribit-style API, filters for valid OTM put options, calculates estimated APRs, and groups results by expiry date.

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

const client = new ThetanutsClient({ chainId: 8453, provider });

// ETH strikes with default settings
const groups = await client.loan.getStrikeOptions('ETH');

// BTC strikes with custom filters
const btcGroups = await client.loan.getStrikeOptions('BTC', {
  minDurationDays: 30,   // At least 30 days to expiry
  maxStrikes: 5,         // Top 5 strikes per expiry
  sortOrder: 'highestStrike',
  maxApr: 15,            // Borrowing rate for cost estimation
});

Strike Settings

Setting
Default
Description

minDurationDays

7

Minimum days until expiry

maxStrikes

20

Maximum strikes per expiry group

sortOrder

'highestStrike'

'highestStrike', 'lowestStrike', 'nearestExpiry', 'furthestExpiry'

maxApr

20

Borrowing APR used for cost estimation (not a filter)

Strike Option Fields

Each option in a group contains:

Field
Type
Description

strike

number

Strike price in USD

strikeFormatted

string

"$1,600"

expiry

number

Unix timestamp

expiryFormatted

string

"Fri, March 28, 2025"

expiryLabel

string

Deribit format: "28MAR25"

underlyingPrice

number

Current underlying price

askPrice

number

Option ask price (fraction of underlying)

impliedLoanAmount

number

Estimated receive per unit of collateral

effectiveApr

number

All-in APR including all costs

isPromo

boolean

Promotional pricing eligible


Calculate Loan Costs

calculateLoan() is synchronous — pure BigInt math, no network calls. Use it after selecting a strike from getStrikeOptions().

Returns null if inputs are invalid (zero deposit, zero strike, etc.) or if the final loan amount would be negative.


Promotional Pricing

Check if a specific strike qualifies for promotional rates:

Promo Eligibility Rules

Condition
Requirement

Days to expiry

> 90 days

LTV ratio

< 50% (strike / underlyingPrice)

Loan amount

< $250,000 per person

Total pool

< $2,000,000 across all promo loans

When promo applies:

  • Option premium is waived (optionCost = 0)

  • Borrowing APR is fixed at 5.68%


Raw Pricing Data

Access the underlying Deribit-style pricing API directly:


See Also

  • Overview — Module overview and cost formula

  • Borrowing — Full borrowing workflow

  • Lending — Fill limit orders and earn yield

Last updated