💧Liquidations
A summary of Paradex liquidation mechanism
Liquidation Process
When an account's Margin Ratio goes above 100% during the periodic Health Check, the account will enter Liquidation.
Paradex employs Partial Liquidation of unhealthy accounts and attempts to minimise impact on the user's assets and positions while minimising the platform risk.
All positions are reduced by the same fraction called Liquidation Share. A corresponding Liquidation Penalty is paid from the user's collateral to the insurance fund.
The minimum Liquidation Share is pre-calculated such that the Margin Ratio is reduced below 90% This parameter aims to move the account sufficiently away from the liquidation level. The Liquidation Share is a multiple of 20%.
The Liquidation Fee is set to 70%. This means that the liquidation penalty is 70% of the MMR in case of a full liquidation of positions.
Example
Alice has the following portfolio :
Long 0.1 BTC-USD-PERP with an entry price of 60,000
Short 1 ETH-USD-PERP with an entry price of 3,000
1,000 USDC collateral
Assuming :
Maintenance Margin Fraction (MMF) = 1% for both BTC-USD-PERP and ETH-USD-PERP
BTC-USD-PERP mark price drops to 54,800 and the ETH-USD-PERP mark price goes up to 3,400
Unrealized PnL | MMR (Maintenance Margin Requirement) | |
---|---|---|
BTC-USD-PERP | 0.1 * (54,800 - 60,000) = -520 USD | 1% * 0.1 * 54,800 = 54.8 USD |
ETH-USD-PERP | -1 * (3,400 - 3,000) = -400 USD | 1% * 1 * 3,400 = 34 USD |
Total | -920 USD | 88.8 USD |
Alice's Account Value = 1,000 - 920 = 80 USD < MMR = 88.8 USD
The following table illustrates how the optimal liquidation share is calculated by predicting the new margin ratio depending on the liquidation share :
Liquidation Share | New MMR | Liquidation Penalty | New Account Value | New Margin Ratio |
---|---|---|---|---|
20% | 71.04 | 8.88 | 71.12 | 99.9% |
40% | 53.28 | 17.76 | 62.24 | 85.6% |
60% | 35.52 | 26.64 | 53.36 | 66.6% |
80% | 17.76 | 35.52 | 44.48 | 39.9% |
In this example, the insurance fund will liquidate 40% of the user's positions to bring the account's Margin Ratio below 90% and will receive 17.76 USDC as a liquidation penalty
Alice realized a loss of 40% * 920 = 368 USD and is left with 1,000 - 368 - 17.76 = 614.24 USDC collateral
Alice is also left with a long 0.06 BTC-USD-PERP and a short 0.6 ETH-USD-PERP positions
The margin ratio of Alice is now 85.6% and the insurance fund only took 17.76/88.8=20% of the account value to perform this liquidation and make the account healthy again.
Note that this process can result in a full liquidation in the event where the remaining collateral after a 100% liquidation of positions is not sufficient to pay the liquidation penalty.
The liquidated positions as well as the liquidation penalty are transferred over to the Insurance Fund upon liquidation.
Insurance Fund
The Insurance Fund closes the acquired positions in the market, incurring any losses from adverse price movements against the position.
You can see the balance of Paradex's Insurance Fund on cloud here.
The Insurance Fund serves as a backstop to minimise the risk of socialized losses. It prevents the propagation of risk from bankrupt accounts toward the rest of the market.
Tutorial: Checking Insurance Fund Balance on Paraclear Contract
The insurance fund on the Paraclear contract holds funds to cover losses in case of liquidation. It doesn't show its balance on the Voyager app because the funds are not held in the USDC contract itself.
Here's how you can check the balance on-chain :
Go to Paraclear Contract: Open the following link to access the Paraclear contract on the Voyager platform: Paraclear Contract on Voyager
Switch to the "Read Contract" Tab:
Once on the contract page, navigate to the "Read Contract" tab at the top of the interface. This tab allows you to access read-only contract functions that display on-chain data.
Find the
getTokenAssetBalance
Function: Scroll down to find the function namedgetTokenAssetBalance
. This function will return the balance of a specific token for a given address.Input the Required Addresses: In the first input field, enter the insurance fund address:
0x78d1acdc72fcacd35325402740fca2f7065fd680e59b950326a344710bcd687
In the second input field, enter the USDC token address:
0x7348407ebad690fec0cc8597e87dc16ef7b269a655ff72587dafff83d462be2
Query the Balance: After entering the addresses, click the "Query" button. This will execute the function and return the balance of the insurance fund in USDC tokens.
Understand the Result: The returned value will be the balance of the insurance fund in USDC tokens. The precision of the returned value is 8 decimals, meaning the number you see has 8 decimal places.
Note that USDC has a precision of 6 decimals. To get the actual balance, you'll need to adjust for this. For example, if the result is 1000000000, the balance would be 10 USDC
Example:
- Insurance fund address: 0x78d1acdc72fcacd35325402740fca2f7065fd680e59b950326a344710bcd687
- USDC token address: 0x7348407ebad690fec0cc8597e87dc16ef7b269a655ff72587dafff83d462be2\
Once the query is performed, if the returned value is 1000000000, the actual USDC balance of the insurance fund is 10 USDC.
Socialized Losses
When Paradex Insurance Fund is bankrupt due to large amounts of unprofitable liquidations, Socialised Losses will occur as a last level of backstop.
Last updated