The vault
One contract per coin. No owner, one button, a cap on each press.
A vault is created by the factory at the same moment the coin is, in the same transaction, and its address is written into the coin's pons config as the fee recipient. It cannot be changed afterwards, because nothing on the vault or the factory can change it.
What you can read from it
| Call | Returns |
|---|---|
pending() | Two numbers: fees still held in the pons escrow, and fees already in the vault. A roll claims both, so the site adds them. |
rollCapacity() | The most a single roll is allowed to spend right now. |
owed(address) | What that address has earned from rolling and has not collected yet. |
totalBurned() | How much of the coin this vault has destroyed, all time. |
totalQuoteToLp() | How much has gone into locked liquidity. |
totalQuoteToKiln() | How much has been spent buying KILN. |
The impact cap
A vault will not spend so much in one press that it moves the price by more than maxImpactBps, which is 3% by default. Anything above the cap simply waits for the next roll.
This is there because the vault is a buyer that anyone can trigger. Without a cap, somebody could push the pool price up, press Roll, and have the vault buy their bag at the price they just made. With the cap, the worst they can extract is bounded by that 3%, and the vault gets the rest at a normal price on the next press.