Liquidations

Overview

Liquidations are a critical mechanism in Curvance that maintain protocol solvency by allowing third parties to repay undercollateralized debt positions in exchange for the borrower's collateral at a discount. When a borrower's collateral value falls below required thresholds, liquidators can step in to close these risky positions before they accumulate bad debt.

How Liquidations Work

Users can borrow assets against their posted collateral. Each collateral asset has specific requirements that determine when a position becomes liquidatable:

  1. Collateral Requirements - Each token has two thresholds:

    • Soft Requirement - Position becomes partially liquidatable.

    • Hard Requirement - Position can be fully liquidated.

  2. Health Factor (lFactor) - Determines liquidation severity:

    • lFactor = 0 - Position is healthy (not liquidatable).

    • 0 < lFactor < 1 - Soft liquidation (partial).

    • lFactor = 1 - Hard liquidation (up to 100%).

  3. Liquidation Incentive - Liquidators receive a bonus on the collateral they seize, compensating them for the service of maintaining protocol health.

When Positions Become Liquidatable

A position becomes liquidatable when:

  • The value of collateral falls relative to the debt

  • The price of borrowed assets increases

  • Interest accrues on the debt, pushing the position over the threshold

  • Any combination of the above factors

Two Types of Liquidations

Non-Auction Liquidations

Standard liquidations available to anyone at any time. These use protocol-defined parameters (close factor, liquidation incentive) based on the position's health factor.

Auction-Enabled Liquidations

Special liquidations triggered by authorized auction managers with custom parameters. These provide auction participants priority access via an "auction buffer" that effectively gives them better prices than regular liquidators.

Feature
Non-Auction
Auction-Enabled

Who can execute

Anyone

Anyone, but processed by auction-permissioned accounts via account abstraction.

When available

Always

When market is unlocked for auction

Parameters

Protocol-defined

Can be custom

Priority buffer

None

10 or 50 BPS discount on collateral

Liquidator Workflow

  1. Discover accounts - Monitor events or query on-chain data to find positions

  2. Validate liquidation - Call canLiquidate() to get exact amounts and profitability.

  3. Execute - Call liquidate() or liquidateExact() on the debt token.

  4. Receive collateral - Seized collateral is transferred to your address.

Key considerations:

  • Account Discovery - Use event monitoring (PositionUpdated, Borrow, CollateralUpdated etc.).

  • Profitability - Always check profitability before executing, consider gas costs.

  • Smart Contracts - Highly recommended over scripts for atomic profitability checks.

  • Flash Loans - Can be used to liquidate without upfront capital.

  • Competition - Popular liquidation opportunities can be competitive, optimize for speed and gas efficiency.

Last updated