Liquidation System

Liquidation System: Protocol Solvency Protection

πŸ“‹ Overview

Quantillon's liquidation system protects protocol solvency by allowing users to exit even when collateralization is insufficient. Unlike traditional DeFi liquidations, Quantillon uses a pro-rata distribution model that fairly distributes losses among all participants.


🎯 When is Liquidation Triggered?

Critical Threshold

uint256 public constant CRITICAL_COLLATERALIZATION_RATIO_BPS = 10100; // 101%
Protocol State
Collateralization Ratio
Mode

Healthy

> 105%

Normal minting and redemption

Under Watch

101% - 105%

Limited minting

Liquidation

≀ 101%

Liquidation mode activated

Verification

function shouldTriggerLiquidation() public returns (bool shouldLiquidate) {
    uint256 currentRatio = getProtocolCollateralizationRatio();
    return currentRatio < criticalCollateralizationRatio;
}

πŸ”„ How Liquidation Mode Works

Automatic Flow

Difference: Normal Mode vs Liquidation

Aspect
Normal Mode
Liquidation Mode

Price

Oracle EUR/USD price

Pro-rata of actual collateral

Guarantee

1 QEURO = EUR value in USDC

1 QEURO = share of pool

Hedger

Normal P&L

Proportional margin loss

Exit

Guaranteed value

Possible haircut if CR < 100%


πŸ“ Calculation Formulas

Pro-Rata Distribution

Example with CR = 95% (undercollateralized)

Example with CR = 102% (overcollateralized but < 105%)

Hedger Loss

The hedger absorbs a proportional loss on their margin, recorded via:


πŸ“Š View Functions

Check Liquidation Status

Usage Example

Calculate Expected Payout

Usage Example


πŸ’Έ Fees in Liquidation Mode

By default, redemption fees are applied even in liquidation mode.

Configuration
Impact

TAKES_FEES_DURING_LIQUIDATION = true

Normal fee (0.1%) even in liquidation

TAKES_FEES_DURING_LIQUIDATION = false

No fee in liquidation

Rationale: Fees allow the protocol to continue generating revenue to cover operational costs even during stress periods.


πŸ›‘οΈ User Protection

Slippage Protection

The minUsdcOut parameter protects against:

  • Oracle price changes between submission and execution

  • Surprises in liquidation mode

Recommendation: In liquidation mode, use a calculated minUsdcOut:

Monitoring


πŸ”„ Integration with HedgerPool

recordLiquidationRedeem

Impact on Hedger

  1. filledVolume decreases proportionally

  2. realizedPnL updated (usually negative in liquidation)

  3. margin reduced proportionally

  4. If margin < minMarginRatio: position may be closed


πŸ“ˆ Liquidation Scenarios

Scenario 1: Sudden EUR/USD Crash

Scenario 2: Massive Hedger Withdrawal

Scenario 3: USDC Depeg


βš™οΈ Governance Configuration

Modify Thresholds

Validations

Event


🚨 Emergency Procedure

Steps in Case of Liquidation

  1. Automatic monitoring β†’ Detection of CR ≀ 101%

  2. Notification β†’ Alerts to stakeholders

  3. Liquidation mode β†’ Automatically activated

  4. Communication β†’ Inform users

  5. Analysis β†’ Identify the cause

  6. Resolution β†’ Capital injection or other measures

Roles Involved

Role
Possible Action

EMERGENCY_ROLE

Pause protocol if necessary

GOVERNANCE_ROLE

Adjust thresholds

Hedger

Add margin to improve CR

Users

Pro-rata redemption available


πŸ“‹ Summary

Aspect
Detail

Trigger

CR ≀ 101%

Mechanism

Pro-rata collateral distribution

Calculation

payout = (amount / supply) Γ— totalUSDC

Hedger

Absorbs proportional loss

Fees

Applied by default

Protection

minUsdcOut for slippage

View Functions

getLiquidationStatus(), calculateLiquidationPayout()


Important: Liquidation mode is designed as a protection mechanism, not a normal state. The goal is to maintain CR > 105% at all times through the hedging system and YieldShift incentives.

Last updated