Burn auction

How a vault’s SOL becomes a burn of its token, for any mint on any venue.

The rule

  1. Start. When a vault holds at least the minimum lot () and no auction is live, anyone calls start_auction. The lot is the vault’s whole balance at that moment.
  2. The ask. For a vault’s first auction the ask starts at the mint’s whole supply. After that it starts at twice the last clearing rate. It halves every half-life (), falling every slot in between.
  3. Take. Whoever delivers the ask first receives the lot. The program burns the delivered tokens from the burner’s account and pays out the lot, less the protocol share.
  4. After. The clearing rate is recorded. SOL that arrives during an auction waits for the next one.

The rate

The program keeps a rate: token atoms per lamport, in fixed point. The ask is the lot times the rate.

math
rate(slot) = start_rate / 2^h × (1 − r / (2 × half_life))
  h = whole half-lives since start_slot
  r = slots into the current half-life

ask(slot)  = lot × rate(slot)
burn requires: delivered ≥ ask(slot)

Worked numbers

An example vault: a token at 0.00000984 SOL, a lot of 0.0552 SOL. At the market price that lot buys about 5,610 tokens. The last auction cleared near there, so this one starts by asking for twice as many.

Time since startAskWhat the ask costs at marketThe lot pays
011,220 tokens0.1104 SOL0.0552 SOL
half a half-life8,415 tokens0.0828 SOL0.0552 SOL
one half-life5,610 tokens0.0552 SOL0.0552 SOL
a moment later5,550 tokens0.0546 SOL0.0552 SOL

At the last row the lot pays more than the ask costs. The first burner to act buys 5,550 tokens on the market, delivers them, and keeps the difference. 5,550 tokens are burned.

A first auction starts from the whole supply instead. From 1,000,000,000 tokens the ask needs a little over 17 halvings to reach 5,610.

Why an auction

The program only asks for tokens and burns what arrives, so it works the same for a token on any venue. Burners race each other to deliver, and the race ends as soon as the lot is worth more than the ask costs one of them. The token is bought at its market price, give or take that burner’s margin.