Open app
Mock-asset beta
Documentation/The protocol

The shape of the curve.

A precise guide to reserve normalization, the signed invariant, pricing, and the difference between replication and settlement.

Start with units

SymbolDefinitionUnits
RAccounted raw stock-token reserveRaw tokens
m0Creation-time displayed-share multiplierRisky units / raw token
X = R × m0Curve stock reserveRisky units
YAccounted USDG LP reserveUSDG
LTotal liquidity unitsLP liquidity
x = X / LNormalized stock inventoryDimensionless
y = Y / LNormalized USDG inventoryUSDG / liquidity unit
KImmutable strikeUSDG / risky unit
τmax(T − block time, 0) / (365 days)Years
σFixed annualized volatilityAnnualized decimal
Φ, Φ⁻¹Standard normal CDF and inverse CDFDimensionless

Every formula here uses real-valued decimal quantities. Contract inputs use integer token units and WAD-normalized quantities. A raw amount of 1,000,000 means 1 USDG for the local six-decimal token; it does not mean one million USDG.

A decreasing reserve curve

text
a = σ × √τ
z = Φ⁻¹(1 − x)
g(x, τ) = K × Φ(z − a)

ψ(x, y, τ) = y − g(x, τ) = κ

At a fixed time and signed offset κ, stable reserves decrease as stock reserves increase. This orientation is essential: a stock sale must move the pool toward more stock and less stable inventory. The offset κ can be negative without implying insolvency; actual reserves and transfer feasibility determine whether the state can support a trade.

The pool uses an independently implemented fixed-point approximation for normal-distribution functions. It is a research kernel. The full specification's certified interval bounds and release-domain proofs are not established merely because contract tests pass.

From reserves to price

text
S_D = −∂g/∂x = K × exp(a × z − a² / 2)

d1 = [ln(S_D / K) + σ²τ / 2] / a
x = 1 − Φ(d1)
y = K × Φ(d1 − a)      [zero-offset reference]

S_D is USDG per creation-time risky unit, not necessarily the displayed share price. Higher stock prices correspond to a smaller model stock allocation and a larger stable allocation. Trading must actually occur for a live pool's inventory to move along this shape.

Compare one time against itself

text
τ = remaining time at this transaction's block timestamp
κ_before = y_before − g(x_before, τ)

Price the fee-free candidate using κ_before and the same τ.
Retain the LP fee in stable reserves.
Validate the candidate using that same τ.

The pool does not carry yesterday's offset forward and invent reserves to restore it. Time advancement alone transfers no stock or USDG. This is why a UI must never count automatic theta accrual as funded income.

USDG-side LP fees increase the stable reserve relative to the fee-free candidate. Protocol fees are removed from LP accounting. Mixing protocol liabilities into y would overstate inventory and corrupt subsequent quotes.

Why it resembles a covered call

text
Zero-offset model inventory value = S_D × x + y
                                 = S_D − C_BS

Mathematical terminal benchmark = min(S_D(T), K)

Under zero interest, the fixed-lot total-return convention, and the reference model, stock minus a Black–Scholes call gives a covered-call benchmark. The equation describes a shape; the contract does not owe an option payoff, an exercise transfer, or a strike payment.

Actual reserves can diverge because of discrete trading, finite liquidity, price gaps, changing volatility, market closures, price guards, retained fees, and numerical error. A same-cost spot holding and a same-cost static reserve portfolio are useful comparisons because they preserve the initial capital budget.

Numerical release requirements

  • Prove the supported reserve, strike, volatility, and time domain against overflow and invalid logarithms or exponentials.
  • Compare the implementation with an independent high-precision reference over the complete permitted domain.
  • Establish conservative error bounds; an unproven fixed tolerance must not become a repeated-trade subsidy.
  • Verify both token-decimal conversions and rounding directions for seed, mint, burn, fees, and swaps.
  • Test microscopic repeated round trips, near-boundary reserves, signed offsets, and late timestamps.
  • Reject unsupported states instead of displaying plausible but unexecutable quotes.

The design specifies a candidate normalized-stock range of 10⁻⁶ to 1 − 10⁻⁶ and stricter production error targets. Those are research acceptance requirements, not a declaration that every value in that range is suitable for public capital in this build.

Primary research

VANTA DOCUMENTATIONMock-asset beta · September 2026