# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.curvance.com/app/developer-docs/quick-start-guides/liquidations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
