Liquidations
ShadeX utilizes a dual-liquidation engine, powered by Streaming Swaps on ShadeSwap and a robust public liquidation marketplace, to manage positions whose LTV are above the liquidation LTV for their collateral backing. ShadeX liquidation engine performs partial liquidations of user positions, meaning that debt is repaid just enough to return the position below the Max LTV allowed by the positions collateral. The two liquidation methods on ShadeX are referred to as Public and Private Liquidations. All liquidatable positions can be subject to private liquidations; However, public liquidations can only occur above a configurable “public liquidation LTV threshold”. This ensures that regardless of activity within the public liquidation marketplace, the protocol retains the ability to participate in liquidating positions.
Private Liquidations
Once a position is flagged for liquidations, the first “liquidation range” it enters is the private liquidation range. All positions flagged for liquidations are subject to private liquidations.
Private liquidations effectively create “streamswaps” across ShadeSwap, where collateral for liquidatable positions is sold on ShadeSwap for the debt token to repay the debt needed to return the position below the Max LTV allowed by its collateral backing. Swaps of collateral for debt tokens have configurable parameters that dictate the maximum swap size, route, and slippage tolerance allowed for private liquidations. If a position is still considered liquidatable after it is subject to private liquidation, there is a configurable “sleep timer” placed on the position where liquidation cannot be triggered. This “sleep timer” is meant to allow for market participants to arbitrage pools that were used to route collateral swaps for debt tokens in order to allow for more efficient further private liquidation events if required.
When a user's position is flagged for liquidation, details like position IDs, debt tokens, collateral, and route for private liquidation are obfuscated to protect user privacy. Additionally, ShadeX further attempts to protect user privacy by utilizing a Blind caller mechanism to trigger liquidation events.
As a result of this, callers of the liquidation function for private liquidations do not know which collateral is being sold to repay which debt, nor the swap route or the expected profit from the liquidation event.
In order to incentivize market participants to check for liquidatable positions and call the liquidation mechanism, profits from the liquidation (distributed as % of the additional collateral received from repaying debt) are split between the liquidator and protocol.
Public Liquidations
Public liquidations occur once a position flagged for liquidation has crossed a configurable threshold above the liquidation LTV. Private liquidations can occur both below and above this configurable threshold.
Unlike private liquidations, there are no time or size restrictions placed on public liquidation of collateral for debt tokens.
When a user's position is flagged for liquidation, details including position ID, debt tokens and collateral tokens are made public; details like wallet address are not made public.
Public liquidations provide additional liquidation capacity for collateral/debt combinations with no configured private liquidation swap route, insufficient liquidity for private liquidations, or rapid price declines where LTV has increased quicker than private liquidations can reduce the LTV..
Liquidators can select debts to repay and select to receive any of the available collateral backing the debt tokens being repaid. This is a first come, first serve marketplace.
In order to incentivize market participants to check for publicly liquidatable positions and participate in repaying debt in exchange for collateral, liquidators can repay as little, or as much, of the debt (up to the max debt needed to be repaid) and still receive the liquidation discount configured for each collateral. Public liquidations do not share profits with the protocol.
Last updated
Was this helpful?