Loan Health

Technical explanation of Lotus loan health checks, oracle integration, modular liquidation architecture, and the Oracle Incentive Liquidation Module.

Oracles

Lotus is oracle‑agnostic. Markets specify an oracle per tranche, and Lotus only assumes it can retrieve a price for collateral/loan valuation.

Health Check

Oracles are used to evaluate borrower health during:

  • borrow()

  • withdrawCollateral()

  • liquidate()

Healthy means maxBorrow ≥ borrowed for the tranche (see LLTV).

Borrowed amount

Borrowed amount is derived from the borrower's borrowShares at trancheIndex, converted into assets using tranche borrow totals.

Max borrow

Max borrow is derived from collateral amount, oracle price, and the tranche LLTV.

Liquidations

Lotus modularizes liquidation policy:

  • The core Lotus contract is responsible for:

    • health checks

    • interest accrual

    • collateral approvals

    • position updates

    • bad debt accounting and cascading

  • A protocol-approved Liquidation Module is responsible for:

    • liquidation pricing (calculateLiquidation)

    • liquidation execution (executeLiquidation)

Liquidation flow

  1. Accrue interest locally for the tranche.

  2. Fetch price from oracle; verify the position is unhealthy.

  3. Liquidation Module quotes seized collateral vs debt repaid.

  4. Update the borrower’s position and compute any bad debt.

  5. If bad debt > 0, accrue interest for the full market and cascade loss to current and junior suppliers by utilization.

  6. Approve collateral to the module and execute the swap/transfer.

Liquidation Modules are pluggable. The protocol owner enables modules, and new markets choose among them at creation.

Oracle Incentive Liquidation Module

The OracleIncentiveLiquidationModule stores a per-tranche liquidationIncentiveFactor and applies it when quoting seized collateral vs repaid debt. It supports both collateral-first and debt-first quote modes.

Last updated