Liquidations

Overcollateralized Borrowing

Borrowers are required to deposit a collateral asset in order to borrow. This collateral must be worth more than what is borrowed by a certain margin. This margin is determined by a liquidation threshold (LLTV). If the value of collateral compared to the debt owed drops below this margin, the user can be liquidated.

Position Health (LTV, LLTV & Health Factor)

LTV=DebtCollateralLTV=\frac{Debt}{Collateral}

Where DebtDebt is the amount borrowed plus accrued interest by the user (what is owed and required to be repaid to unlock the collateral fully) and CollateralCollateral is the value of the collateral in terms of the debt asset (based on market oracle).

When the LTV reaches above a certain Liquiditation Loan-to-Value (LLTV) threshold, the position becomes liquidatable. In such case, a liquidator can repay the loan and seize the collateral for a profit.

The user position's liquidatability is measured as a health factor which is a ratio of LLTV to LTV. The user must maintain this above 1 or else they can be liquidated.

Healthfactor=LLTVLTVHealth_{factor}=\frac{LLTV}{LTV}

Oracle

Each market (whether fixed- or floating-rate) uses a set oracle. These oracles are used to value the collateral in terms of the debt asset to measure LTV (as seen above). There are three types of oracles which can be used:

  1. Price Feed Oracles: External price feeds (like Chainlink, Redstone, etc.) to calculate asset exchange rates.

  2. Exchange Rate Oracles: Designed for wrapped tokens or rebasing tokens where the exchange rate is deterministic.

  3. Fixed-Price Oracles: Used for assets with known or predefined exchange rates, such as stablecoins pegged to the same value.

Bond Token Oracle (Fixed-Rate Markets)

Bond tokens (BTs) are assumed to be priced 1:1 with the underlying borrowable asset of each market. For example, BT-USDC is priced as 1 USDC when measuring LTV of fixed-rate borrowers. This allows us to further compute the value of the collateral in the same underlying asset (if BTC is the collateral asset, we would measure it's value in USDC rather than BT-USDC).

Liquidation Incentive Factor (LIF)

The amount of collateral liquidators receive is based on the Liquidation Incentive Factor (LIF) this determines the additional collateral which is allocated to liquidators as a bonus

LIF=min(MaxLIF, 1δLLTV+(1δ))LIF=min\left( Max_{LIF}, \space \frac{1}{\delta \cdot LLTV + (1-\delta)} \right)

Where MaxLIFMax_{LIF} is the maximum LIF and δ\delta is a LLTV sensitivity coefficient (higher set values create higher LIF values). Currently, these parameters are set as follows: MaxLIF=1.15Max_{LIF}=1.15 and δ=0.3\delta=0.3. These can be modified.

Applying the LIF, the amount of collateral seized is calculated as follows:

Collateralseized=min(Collateral, LIF×debtrepaidpricedebt)Collateral_{seized}=min\left(Collateral,\space LIF\times \frac{debt_{repaid}}{price_{debt}}\right)

Where CollateralCollateral is the total collateral of the borrower's position, debtrepaiddebt_{repaid} is the amount repaid by the liquidator, and pricedebtprice_{debt} is the price of the debt relative to the collateral (based on the oracle). The remaining collateral is retained by the borrower.

Example

A user borrows 1000 USDC from a floating-rate market by depositing 0.5 ETH as collateral which is worth 1500 USDC at the time of deposit, given the oracle prices USDC/ETH at 3000. His LTV at this time is approximately 0.67 (1000 / 1500) while the LLTV of the market is 0.7. This means the health of the position is approximately 1.044 which is above 1 (making the position healthy).

Assuming the price of ETH (based on the oracle) drops to 2850 USDC/ETH (and no further interest has accrued), the LTV of the position becomes 0.701. The health of the position is now approximately 0.999. The position is liquidatable.

A liquidator repays the loan with 1000 USDC. The LIF is approximately 1.098. Therefore the liquidator seizes 0.385 ETH (1.098 x 1000 / 2850) which is equal to 1098 USDC (generating a profit of 98 USDC) and the borrower retains 0.115 ETH.

Last updated