For the complete documentation index, see llms.txt. This page is also available as Markdown.

Liquidation Engine

The liquidation engine protects the pooled LP and keeps markets solvent by fully closing positions that violate margin safety. It acts when a position’s effective equity (collateral adjusted for funding) or status no longer meets requirements, using the DoA index price.

When a position becomes liquidatable:

At evaluation time the engine computes:

  • Payout at the current index price (includes trading PnL and funding PnL).

  • Remaining collateral = collateralAmount + fundingPnL.

A position is LIQUIDATABLE if any of the following is true:

  1. Margin call: remainingCollateral ≤ 0 or payout ≤ liquidationThreshold × remainingCollateral (works with or without leverage).

  2. Forced take-profit: payout ≥ maxPayout (the configured cap / profit ceiling).

  3. Funding drain: funding fees have consumed the user’s entire collateral (or an admin-set fraction), even if price PnL is positive.

  4. Index / token delisted: the relevant index or settlement token is no longer in circulation / disabled.

  5. Whitelist removal: the trader’s address has been removed from the whitelist.

The check is performed inside the position evaluation routine; if any rule trips, status returns LIQUIDATABLE.

Full vs. partial liquidation

  • The current implementation fully closes liquidatable positions (no partial unwind). The trade’s status becomes CLOSED, market open-interest is reduced, and reserves are reconciled in the Pool.

  • Reserve bookkeeping happens via the reserve-adjustment path (unlocking previously locked capacity and settling the LP delta).

Health Factor

The Health Factor (HF) shows how close your position is to liquidation. It ranges from 100% (completely safe) to 0% (fully liquidated) and updates continuously as the index level changes.

How it’s calculated:

  1. Measure both liquidation distances. A position might be liquidated for two MAIN reasons ( there are 5 of them in total) - margin call or forced take-profit. The system measures how far the current index level is from each liquidation point.

  2. Convert distances to percentages. Each distance is converted to a scale from 0% to 100%, where:

    • 100% = at entry level (safe)

    • 0% = at liquidation level

  3. Take the minimum value. The smaller of the two percentage distances determines your Health Factor, since liquidation occurs if either condition is hit first.

Health Factor=min(Margin Distance %, Profit Cap Distance %)\text{Health Factor} = \min\bigl(\text{Margin Distance \%},\ \text{Profit Cap Distance \%}\bigr)

If you entered a position at level 100 and your liquidation level is 50:

  • At level 100, HF = 100% (fully safe)

  • At level 50, HF = 0% (liquidated) Between them, the value decreases linearly. So at level 75, HF = 50%, and at level 62.5, HF = 25%

Math TL;DR

  • Payout=collateral+tradingPnL+fundingPnLPayout = collateral + tradingPnL + fundingPnL capped by maxPayout.

  • Margin call rule: liquidate if payout is too small relative to equity baseline (collateral + fundingPnL) at the configured threshold, or if equity baseline ≤ 0.

  • Funding drain rule: liquidate when funding consumes all (or the configured share of) collateral.

  • Settlement waterfall: fee is taken from payout and sent to the fee receiver; remainder (if positive) to the trader; Pool reserves are reconciled. The treasury never pays (it only receives protocol fees).

Last updated