Liquidations

Background

Liquidations take place to ensure the health of a respective guild. Guilds have isolated risk, so liquidations in one guild do not affect the health of other guilds. In Tradfi, loans have a predetermined maturity date on which all outstanding debt needs to be paid (except mortgages, in which principal is slowly paid back), and if this is not done, then the loan is in default and collateral can be liquidated.

For perpetual debt (ie Covenant zTokens), there is an implied maturity date, a parameter that calibrates the sensitivity changes in zToken spot price to interest rate, but no actual maturity date. Instead, liquidations are enabled when Guild specific conditions are met. For example, a margin loan type liquidation trigger would be based on collateral MTM. Other liquidations triggers can be encoded (e.g., liquidations are allowed only after interests accrued net of payments reaches a pre-defined watermark). For most Guilds, a borrower can prevent liquidations by paying back part of the loan or adding collateral.

Margin Debt Type Guild Liquidations

As described previously, there is no maturity date in Covenant but Guild specific liquidation triggers. In addition, borrowers have a Debt_Notional owed (that accrues over time), which has to be paid back upon a Liquidation event.

For margin debt Guilds, liquidations are triggered when

Collateral_ValueLIQUIDATION_THRESHOLD<Debt_NotionalCollateral\_Value * LIQUIDATION\_THRESHOLD < Debt\_Notional

This is similar to AAVE/Compound, with the difference that on those protocols Debt_Value is used instead of Debt_Notional. Upon liquidation, the liquidator acquires collateral for a discounted price (vs its current mark to market) using zTokens as payment.

So, if the liquidator pays zTokenToCover_Value, it receives:

CollateralReceived_Value=zTokenToCover_ValueCOLLATERAL_LIQ_BONUSCollateralReceived\_Value = zTokenToCover\_Value * COLLATERAL\_LIQ\_BONUS

Crucially, the amount of Debt_Notional that gets erased depends on the current status of the loan being liquidated.

A) Over-collateralized liquidations

The loan is over-collateralized but unhealthy (liquidation has been triggered), ie,

Collateral_Value>=Debt_NotionalCOLLATERAL_LIQ_BONUSCollateral\_Value >= Debt\_Notional * COLLATERAL\_LIQ\_BONUS

To liquidate the position, liquidators need to pay Debt_Notional amount of money, paid with zTokens. A TWAP zToken price is used to calculate the zTokenToCover_Value, where:

DebtCancelled_Notional=zTokenToCover_ValueDebtCancelled\_Notional = zTokenToCover\_Value

Given zTokens will usually trade below their notional value, more zToken notional is burned during liquidations than debt notional. This surplus is a gain for lenders, and is distributed to all remaining zToken holders.

The above approach has the following features:

  1. Liquidators have a constant bps reward for their activity, independent of how low zTokens are priced. Basically, they reap rewards proportional to (1-COLLATERAL_LIQUIDATIONS_BONUS).

  2. Lenders get a reward dependent on the difference in collateral value vs ztoken price. If for some reason loans are well collateralized but zTokens are trading at a low price, then Lenders (not Liquidators) get the reward from selling a Debt_Notional amount of Collateral. This gain for Lenders is a loss for Borrowers that get liquidated.

B) Under-collateralized liquidations

In this scenario, the value of zTokens paid would never cover the debt owed, so losses need to be distributed to zToken holders. To enable both partial and full liquidations in this scenario, collateral is liquidated proportionally to the total debt in the loan. ie

Percent_liquidated=Collateral_Received_ValueTotal_collateral_ValuePercent\_liquidated = \frac{ Collateral\_Received\_Value }{Total\_collateral\_Value}

DebtCancelled_Notional=Percent_LiquidatedTotal_Debt_NotionalDebtCancelled\_Notional = Percent\_Liquidated * Total\_Debt\_Notional

Last updated