Skip to content

Liquidations and Sweeps

Interest Exchange liquidation is a prepaid-coverage sweep of the fixed-rate overlay. It is separate from collateral liquidation in Aave, Morpho, or another underlying lending protocol.

Coverage Ticks

Each borrower position stores a liquidationTick. Each series accumulates the fixed-minus-capped-variable spread and maps that cumulative value to a current tick. Prepaid funds the distance between the entry checkpoint and the borrower's boundary.

The boundary tick remains live at equality. A position becomes sweepable when the current frontier advances beyond its funded tick.

Sweep Process

settle(poolId, seriesKey, recipient):

  1. advances fixed and variable accrual;
  2. finds active ticks below the new frontier;
  3. consumes the available prepaid attributable to each crossed tick;
  4. removes its FRT notional from active series totals;
  5. credits consumed prepaid and forfeited bond to VRT assets;
  6. increments the tick ID so borrower slots can detect the sweep; and
  7. optionally pays the recipient the configured sweepBPS incentive.

One call processes at most 64 active ticks. If a backlog remains, later settle calls continue it. VRT deposit/withdraw paths reject a sweep backlog so share pricing cannot skip required processing.

There is no public liquidate(poolId, seriesKey, borrower) function. Keepers call series-level settle; settlePosition or another borrower action later clears the swept slot.

Avoiding a Sweep

Borrowers can add prepaid ticks directly or opt into KeeperBundler top-ups. Top-up permission can cause the adapter to borrow additional underlying assets for the user, so the borrower must understand and explicitly grant both pool operator and protocol-specific adapter authority.

Interest Exchange Protocol