Compoundv2 liquidations: Shortfall vs. Deprecation
Updated:Compound V2 liquidations on Ethereum let a liquidator repay debt and seize a borrower's cToken collateral. The V2 Comptroller implementation has an ordinary shortfall route and a separate exception for qualifying deprecated markets.
- Ordinary Trigger
- A positive account shortfall under the Comptroller's collateral requirements. The requested repayment cannot exceed the close factor multiplied by the borrower's outstanding debt in the borrowed market.
- Deprecated-Market Predicate
-
The borrowed market must have a zero collateral factor, paused borrowing and a 100% reserve factor together. The V2 Comptroller calls this state
isDeprecated. - Exception's Repayment Limit
-
When the borrowed market satisfies
isDeprecated, liquidation does not require a shortfall or apply the ordinary close-factor cap. The requested repayment can reach that market's full outstanding borrow balance, subject to the remaining execution checks. - Collateral Allocation
- The documented CToken implementation removes collateral cTokens from the borrower. It allocates the protocol seizure share to reserves and credits the remaining cTokens to the liquidator.
Wind-Down Parameters and Contract State
Gauntlet published Compound V2 Deprecation Proposal v2 on December 2, 2025. The executed proposal, numbered 512, specifies paused borrowing and minting across V2, with reserve factors of 100% for all assets.
Those changes alone do not establish the Comptroller's full deprecation predicate, which also requires a zero collateral factor in the borrowed market. A governance proposal's deprecation label therefore cannot replace the contract-state test.
The predicate concerns the borrowed cToken, which can differ from the cToken that supplies seized collateral. For a deployed market, that exception depends on both its implementation and its actual parameters.
Shortfall and the Close Factor
The Comptroller values collateral in entered markets using cToken balances, exchange rates, oracle prices and collateral factors. Ordinary liquidation requires the account's oracle-valued debt to exceed that adjusted collateral value. The account-level shortfall determines eligibility, while the close-factor cap uses debt in the specific borrowed market.
Borrowing interest can increase that debt between observations. Before checking liquidation permission, the cToken liquidation method accrues interest in both the borrowed market and selected collateral market. The debt balance used by the permission check therefore includes that accrual.
The close factor limits the requested repayment amount for an ordinary liquidation call. It does not specify a percentage of the borrower's collateral or total debt across every market.
When a borrowed market satisfies
isDeprecated
, the Comptroller skips both the shortfall requirement and ordinary close-factor limit. It still rejects a requested repayment that exceeds the borrower's outstanding balance in that market.
Repayment Assets and Collateral Allocation
Liquidators repay the underlying asset owed in the borrowed market. For ERC-20 debt,
CErc20
requires sufficient payer balance and allowance for that cToken's transfer call. The
CEther
liquidation method accepts Ether through its payable call.
The amount that the borrowed market actually receives reduces the borrower's debt and drives the collateral-seizure calculation. If an underlying token charges a transfer fee, that amount can differ from the submitted repayment amount. The Comptroller uses both assets' oracle prices and the liquidation incentive to convert the actual repayment into collateral units. The collateral cToken exchange rate converts that amount into the total cTokens to seize. Both oracle prices must be nonzero, including under the deprecated-market exception.
In the
CToken
implementation, liquidation removes the calculated seizure amount from the borrower's cToken balance. It credits the liquidator with the remainder after the protocol seizure share. The protocol's portion reduces cToken supply and increases reserves by its underlying-equivalent value.
The protocol seizure share differs from the reserve factor, which allocates accrued borrowing interest. Liquidation transfers cToken claims; redemption exchanges those claims for underlying assets. Redemption remains a separate operation, subject to available market cash and applicable account-liquidity checks.
Remaining Execution Conditions
Liquidation eligibility alone does not move collateral; a liquidator must execute a valid
liquidateBorrow
call.
- Both the borrowed market and collateral market must pass the Comptroller's listing checks.
- The borrowed cToken and collateral cToken must identify the same Comptroller for seizure.
- The Comptroller's seizure pause must permit collateral seizure.
- The liquidator must differ from the borrower.
-
The repayment must be positive and must not equal
type(uint).max. - The borrower must hold at least the collateral cToken amount that the seizure calculation requires.
The maximum unsigned-integer value requests full repayment in the ERC-20
repayBorrow
implementation. The liquidation method rejects that value, including when the deprecated-market exception permits full-balance liquidation.
The contracts support seizure from the borrowed cToken itself or another compatible collateral cToken. Same-market liquidation uses an internal seizure call; cross-market liquidation calls the collateral cToken. Neither path removes the applicable permission or collateral-balance checks.
Liquidation Events and Balance Changes
The
RepayBorrow
event records the payer, borrower, actual repayment, resulting account debt and total market borrows. The final
LiquidateBorrow
event identifies the participants, actual repayment amount, collateral cToken and total seized cTokens.
The seized amount includes the protocol's share, so it can exceed the cTokens credited to the liquidator. Collateral
Transfer
events distinguish the liquidator's allocation from the portion assigned to the protocol. A partial liquidation leaves a borrow balance that can continue accruing interest.