Every position has a bust price, fixed when it opens. If the market reaches it, the position is liquidated and you lose your whole margin.
d = 1 / leverage − BUST_BUFFER BUST_BUFFER = 0.0005 (5 bps)long: bust = entry × (1 − d)short: bust = entry × (1 + d)
Without the buffer, the bust would sit exactly where your loss equals your margin. The 5 basis point buffer moves it slightly closer to your entry, so that a jump between two grid points does not leave the house with a loss larger than the margin.
Worked bust prices
| Leverage | Distance to bust | Long bust | Short bust |
|---|---|---|---|
| 2x | 49.95 % | $40,040 | $119,960 |
| 10x | 9.95 % | $72,040 | $87,960 |
| 25x | 3.95 % | $76,840 | $83,160 |
| 50x | 1.95 % | $78,440 | $81,560 |
| 100x | 0.95 % | $79,240 | $80,760 |
How a liquidation happens
liquidate()is permissionless. It reads the newest price in the market's price book, which must be at most 60 seconds old and newer than the position's open.- If that price is at or beyond your bust price, the position closes as a liquidation.
- A close request whose fill price is at or beyond your bust price also settles as a liquidation.
- Crossing the bust is final: you lose the full margin, even if a close an instant earlier would have returned a little.
The protocol's keeper checks every open position against the gateway price every 10 seconds. Only when one crosses does it post a price and liquidate, so the cost of liquidations grows with use, not with time.
Where the margin goes
A liquidation is settled like a losing close with loss = margin. If the queue is empty, a 2 % fee is charged and distributed and the house keeps the rest. If the queue is open, the whole margin flows to the front of the line first. Either way you mint paper on the full margin.
The liquidator receives nothing. The keeper that runs liquidations belongs to the protocol, so there is no bounty to race for.