Liquidation
When a Kimp Contract position becomes liquidatable, how permissionless liquidation works, the 0.50% penalty and a full worked example.
A position is liquidated when its equity falls to its maintenance margin. Liquidation closes the position at the mark, charges a penalty, and returns any remaining equity to the trader. It is permissionless: anyone can call KimpMarket.liquidate.
Parameters#
| Parameter | Value |
|---|---|
| Maintenance margin | 25% of initial margin |
| Liquidation condition | equity ≤ maintenance margin |
| Liquidation price | Mark, the latest finalized index value |
| Penalty | 0.50% of notional |
| Penalty recipient | Kimp Pool, less the keeper share |
| Keeper share | 10% of the penalty |
| Caller | Anyone, via KimpMarket.liquidate |
Condition#
equity = margin_value + unrealized_pnl − feesmaintenance_margin = 25% × initial_marginliquidatable if equity ≤ maintenance_marginMargin value is collateral after the 10% ETH haircut, if any. Unrealized P&L is measured at the mark. Fees are fees owed but not yet paid, which is the 0.05% closing fee. The open fee was paid at entry and is not part of the calculation.
Worked example#
A trader opens a Short premium position on BTC in the Verified Lane.
| Item | Value |
|---|---|
| Notional | 10,000 USD |
| Leverage | 5x |
| Initial margin | 2,000 USD in USDC |
| Maintenance margin | 25% × 2,000 = 500 USD |
| Closing fee owed | 0.05% × 10,000 = 5 USD |
| Entry | +150 bps |
Step 1: find the liquidation level#
2,000 + unrealized_pnl − 5 ≤ 500unrealized_pnl ≤ −1,495 USD10,000 × Δbps / 10,000 ≤ −1,495Δbps ≤ −1,495 bpsFor a Short, Δbps = −(mark − entry), so the position is liquidatable when the mark rises 1,495 bps above entry:
liquidation mark = 150 + 1,495 = +1,645 bpsStep 2: liquidate at the mark#
In a period of extreme retail demand, the BTC index finalizes at +1,645 bps. A keeper calls KimpMarket.liquidate.
unrealized_pnl = 10,000 × −(1,645 − 150) / 10,000 = −1,495 USDequity = 2,000 − 1,495 − 5 = 500 USDpenalty = 0.50% × 10,000 = 50 USDkeeper share = 10% × 50 = 5 USDpool share = 50 − 5 = 45 USDreturned = 500 − 50 = 450 USDStep 3: account for every dollar#
| Flow | Amount |
|---|---|
| Trading loss to the Kimp Pool | 1,495 USD |
| Closing fee | 5 USD |
| Penalty to the Kimp Pool | 45 USD |
| Penalty to the keeper | 5 USD |
| Returned to the trader | 450 USD |
| Total | 2,000 USD |
The total equals the initial margin. The trader's total loss is 1,550 USD plus the 5 USD open fee paid at entry.
Distance to liquidation#
Maintenance margin is 25% of initial margin, so a position can lose 75% of its initial margin, less the closing fee, before liquidation. For a position margined in USDC:
distance_bps = 7,500 / leverage − 5| Leverage | Distance to liquidation |
|---|---|
| 1x | 7,495 bps |
| 2x | 3,745 bps |
| 3x | 2,495 bps |
| 4x | 1,870 bps |
| 5x | 1,495 bps |
Premium moves of this size are rare, but they are not impossible, and positions margined in ETH can be liquidated earlier because a fall in ETH reduces margin value.
Gaps past the liquidation level#
The mark updates once per epoch. If the index moves past the liquidation level within one epoch, the position is liquidated at the new mark with less equity remaining. The penalty is paid from remaining equity and is reduced to whatever remains if equity is below the penalty. If equity is negative, the shortfall is absorbed by the Kimp Pool. Full collateralization and the circuit guard make this unlikely, but LPs carry this risk. See Risk disclosures.
Frozen or stale index#
While an index is frozen or carried, the mark does not change. Positions cannot become liquidatable from index movement during that time. ETH-margined positions can still be liquidated if ETH falls.
Keepers#
Anyone can run a keeper. Keepers watch finalized index values through Flashblocks preconfirmations and call KimpMarket.liquidate on positions that meet the condition. The first valid call succeeds and earns 10% of the penalty. The call reverts if the position is not liquidatable at the current mark.