Skip to content

Spec A specification. Not built, and subject to revision.

Call Options

The AVM can support a perpetual call option whose strike price is the current floor. This sits outside the core pricing mechanism. Issuance, redemption, floor raising, and contraction all function without it, and each market decides independently whether to enable it.

Executing an option mints new tokens at the floor price, widens the floor region, and leaves the spot price where it was.

The floor is the minimum capital the reserve holds behind each token, and the price at which the reserve will always buy a token back. Issuing a new token requires at least f of new capital to back it, otherwise the reserve would no longer cover the area under the curve. The floor is therefore the lowest price at which the AVM can mint without breaking the solvency identity. A strike below it would be unbackable; a strike above it would be an arbitrary choice.

Perpetual means the option has no expiry. Its strike tracks the floor, so it rises whenever the floor rises.

For n options executed:

  • The buyer pays f * n into the reserve.
  • n new tokens are minted.
  • Both the ramp and the main schedule shift right by n, so x1 -> x1 + n and x2 -> x2 + n.
  • The floor region widens by n units.
  • f does not change.

Both schedules move together, by the same distance, keeping their slopes and their relationship to each other. That is what makes the move a pure translation rather than a reshape.

Supply rises from x to x + n, but the price at the new supply equals the price at the old supply:

y_new(x + n) = y_old(x)

The curve moved right by n and supply moved right by n. Every price that existed at a given position still exists, n units further along. Execution has no price impact in either direction.

Required reserve is the area under the curve from zero to supply. After the translation, the curve carries n extra units of floor region at height f, and the rest of it is identical, merely displaced. So:

reserve_required_new = reserve_required_old + f*n

which is exactly the amount the buyer paid. The identity closes without needing any adjustment elsewhere.

Option execution is the only mutation that moves both schedules together and in the same direction.

EventFloor fRampMain
Floor raise (area-preserving)increasesadjustsunchanged
Sell contractionunchangedunchangedshifts down
Option executionunchangedshifts rightshifts right

A floor raise holds the main schedule still and reshapes the ramp against it. Sell contraction drops the main and leaves the ramp alone. Execution preserves the relationship between the two schedules entirely and slides the pair.

Executing at f and immediately redeeming returns roughly the spot price y(x), so the gross spread on the round trip is y(x) - f. That spread is the per-token height of the discovery region at current supply.

An execution fee, set as a governable parameter, prices that spread. The fee makes execution worth doing only when the premium above the floor is large enough to cover it, which confines execution to states where the market price sits well clear of the floor. Near the floor the spread collapses and execution stops being viable.

Take a floor of 0.10 and a spot price of 0.19, with x1 = 200 and x2 = 400. Executing 50 options pays 0.10 * 50 = 5.00 into the reserve and mints 50 tokens. Afterward x1 = 250 and x2 = 450, the floor is still 0.10, and the spot price at the new supply is still 0.19. Required reserve grew by exactly 5.00, matching the payment. Fifty additional units of the curve now sit in the flat floor region.