Burn auction
How a vault’s SOL becomes a burn of its token, for any mint on any venue.
The rule
- 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. - 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.
- 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.
- 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.
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 start | Ask | What the ask costs at market | The lot pays |
|---|---|---|---|
| 0 | 11,220 tokens | 0.1104 SOL | 0.0552 SOL |
| half a half-life | 8,415 tokens | 0.0828 SOL | 0.0552 SOL |
| one half-life | 5,610 tokens | 0.0552 SOL | 0.0552 SOL |
| a moment later | 5,550 tokens | 0.0546 SOL | 0.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.