🌊Liquidations

Liquidations occur when a sub-account's Maintenance Health falls below 0. They are necessary to ensure that a user does not go into negative equity, thereby causing the 100x protocol to inherit bad debt. The 100x health system uses health risk weights for each product to ensure that there is a buffer between a sub-account becoming liquidatable, and that same sub-account going into debt.

Liquidations are done on a per-position basis in the following order:

  • Naked Perp positions

  • Spreads

  • Spot assets

Within this order, positions are liquidated in order of their risk parameters, with the most risky positions within a given product class being liquidated first.

A liquidator can liquidate positions up to the point that the liquidatee's Initial Health = 0. This stops the liquidatee from being "over-liquidated".

Liquidation Price

When liquidators attempt to liquidate a subaccount, they specify the product and the amount they want to liquidate. The liquidation price for assets is set between the mark price and the price determined by the maintenance weight.

The net price at which the product is liquidated is calculated as follows:

  • Long: mark_price * (maintenanceLongWeight + 4) / 5

  • Short: mark_price * (maintenanceShortWeight + 4) / 5

The gross profit of liquidators equals:

  • Long: mark_price * (1 - maintenanceLongWeight) / 5

  • Short: mark_price * (maintenanceShortWeight - 1) / 5

However, the insurance fund receives 25% of the profit that liquidators generate to protect protocol health moving forward. Thus, the net profit of liquidators equals:

  • Long: oracle_price * ((1 - maintenanceLongWeight) / 5 )* 0.75

  • Short: oracle_price * ((maintenanceShortWeight - 1) / 5 )* 0.75

Last updated