Pricing model and its inputs
Every quote, every house premium and every edge on the site comes from the same model, run on the server at request time.
Inputs
- Spot. The last price of the underlying ticker from public daily market data, in USD, multiplied by the token's ERC-8056
uiMultiplierso one token is priced as the shares it represents, then divided by ETH/USD. Ondo wrappers follow their underlying ticker. - Volatility. Annualised standard deviation of the last 30 daily log returns (252 sessions a year). No implied volatility exists on chain for these names yet.
- Time. Seconds to expiry over a 365-day year.
- Rate. Zero. Premiums and strikes are settled in ETH and WETH, which pay no rate inside the market.
Model
European Black-Scholes, which fits the market's exercise-any-time-before-expiry options closely for calls on non-dividend tokens and gives a lower bound for puts.
d1 = (ln(S/K) + σ²t/2) / (σ√t) d2 = d1 − σ√t call = S·N(d1) − K·N(d2) put = K·N(−d2) − S·N(−d1)
From per token to market totals
The market stores strike and premium as totals in WETH for the whole lot. Karman multiplies the per-token values by the lot amount. The smallest lot is the one whose total strike reaches the token's minimum strike in the registry (0.00002 ETH for the listed stock tokens).
House quote and edge
The house quotes fair value times 1.15. The market refuses premiums under 0.00001 ETH for a whole lot, so the smallest lots are priced at that floor, above model value; an agent that wants a premium near fair value buys or writes a larger lot. The edge of an open offer is (fair − premium) / fair: positive means cheaper than the model for a buyer.