Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Pools and accounting

Each pool is an ERC-4626 vault with one extra rule: it knows exactly which of its tokens are spoken for.

Four buckets

BucketWhat is in itCan back a new positionCan be withdrawn
IdleDeposits and earned premium not committed to anythingYesYes
ReservedThe maximum payout of every open positionNoNo
Unearned premiumPremium received but not yet earnedNoNo
Funded claimsPayouts set aside for winners who have not yet been paidNoNo
The pool checks after every action that its token balance covers the four buckets. If it ever did not, the pool would refuse to move tokens rather than pay from the wrong bucket.

What one share is worth

Share value is the pool's economic value divided by the number of shares:
value = token balance − funded claims − expected payout of open positions
Funded claims belong to winners, so they are subtracted. Open positions are marked at their current expected payout using the same volatility model that priced them, so the share value moves with the market before settlement makes it final.
The expected payout is computed as a range rather than a point, because fixed-point arithmetic rounds. Deposits use the low end of the range, so a new depositor cannot be given too many shares. Withdrawals use the high end, so a departing depositor cannot take too much. The difference is small and always in favour of the depositors who stay.
Every pool also holds a small permanently locked seed deposit, made at deployment, which defends the share price against manipulation by the first depositor.

Premium accrual

Premium enters the unearned bucket at open and moves to idle at a constant rate until the position's settlement hour. The pool keeps a single aggregate rate and a schedule of rate decreases at each settlement hour, so accruing to the present is one calculation however many positions are open. Every deposit, withdrawal, and open brings accrual up to date first.

Opening a position

  1. The pool checks the position against the utilisation, position, strike, expiry, and hourly limits.
  2. The position's maximum payout moves from idle to reserved.
  3. The pool's share of the premium enters unearned premium and starts accruing.
For a long, the reserve is the most the capped payoff can pay in the market's asset. For a short, it is the most the put can pay in USDC.

Settling

For every position at the settlement hour, the winning payout moves from reserved to funded claims and the remainder returns to idle. From that moment the pool's available balance is up, its utilisation is down, and the winners' money is in a bucket nobody else can reach.

Market modes

ModeNew positionsDepositsWithdrawalsSettlement and payouts
ActiveYesYesYesYes
PausedNoYesYesYes
Wound downNever againNoYesYes
A pause stops new risk and nothing else. A wind-down is permanent: no new positions and no new deposits, while everything already open settles and every depositor withdraws as collateral frees.
In any mode, if the pool cannot value its open positions because the price feed is unsafe, deposits and withdrawals wait until it can. Settlement does not depend on the live feed and continues.

Capacity

A pool can hold a bounded number of distinct series, where a series is one direction, strike, and settlement hour, and a smaller bounded number at any one settlement hour. The two limits bound the work a settlement transaction can ever have to do. A new position that would need a new series past the limit is refused with This direction is at capacity; one that joins an existing series is not.