Skip to main content

Compound V3 (Comet) Architecture Deep Dive

Written by Eco


Compound V3 — codenamed Comet — is the third major version of the Compound lending protocol. Released in August 2022, Comet replaces the monolithic-pool design of Compound V2 with a one-base-asset-per-market architecture. As of April 2026, Comet holds $2.7B in TVL across Ethereum, Base, Arbitrum, Polygon, Optimism, and Scroll, per DefiLlama's Compound V3 page. The architecture is significantly safer than V2 in the failure-mode sense, and significantly less liquid in the deep-borrow sense.

This deep dive walks the Comet design, the trade-offs against V2 and against peers (Aave V3, Morpho Blue, Spark), and the migration story for V2 users.

What Is Compound V3?

Comet is a single-borrowable-asset, multi-collateral lending market. Each Comet deployment supports one base asset (USDC, ETH, USDT, USDS) that depositors supply and borrowers borrow, plus a list of collateral assets that borrowers can post but cannot supply or borrow.

This is the key structural change from V2. In Compound V2, every supplied asset could also be borrowed against, and every borrowable asset could also be collateral. The result was a many-to-many liquidity matrix where a vulnerability in any one asset (or its oracle) put every depositor at risk. The September 2021 Compound V2 incident, where a smart-contract bug distributed approximately $90M in COMP unintentionally, illustrated the surface.

Comet collapses the matrix. Suppliers earn the supply APY in the base asset and only the base asset. Borrowers post one or more collateral types and borrow only the base asset. Collateral never earns interest in Comet; it's pure backing. The simplification reduces the attack surface materially.

How Comet Works

The flow of a Comet position:

  1. A supplier deposits the base asset (e.g., USDC) into the USDC Comet. They earn the supply APY, paid in the base asset, accrued per block.

  2. A borrower deposits one or more collateral assets (e.g., WETH, WBTC, COMP, UNI, LINK). Collateral does not earn interest.

  3. The borrower draws USDC against the collateral, up to the per-collateral borrow LTV.

  4. The borrower repays USDC plus accrued borrow interest.

  5. If the borrower's collateral value drops below the per-collateral liquidation LTV, anyone can call absorb() — liquidating the position by transferring collateral to the protocol's reserves at a discount and crediting the protocol with USDC.

The full implementation is in the comet GitHub repo. The contracts use a UUPS proxy pattern, with the Configurator contract holding upgradeable parameters.

Risk Parameters

Each collateral in a Comet deployment has four risk parameters:

  • Borrow Collateral Factor (BCF). The maximum LTV at which a borrower can take on new debt against this collateral. Typically 70–80%.

  • Liquidate Collateral Factor (LCF). The LTV at which the position becomes liquidatable. Typically 80–90%.

  • Liquidation Factor (LF). The discount applied to seized collateral on liquidation (typically 5–10%).

  • Supply Cap. The total amount of this collateral the protocol will accept. Caps protocol exposure to any single collateral asset.

Per-collateral parameters are an important design choice. In Aave V3, an asset has one global LTV and liquidation threshold. In Comet, the same collateral can carry different BCFs in different markets — WETH might be 78% in the USDC market and 75% in the ETH market.

Interest Rate Curves

Comet uses a kinked interest-rate model with two slopes plus a borrow-side reserve fee. The supply rate and borrow rate both anchor to a target utilization (typically 80–90%). Below target, both rates rise gently; above target, both rise steeply.

Comet's curve has a notable feature: the supply and borrow rates are computed independently, with the spread (borrow rate minus supply rate, scaled by utilization) accruing to the protocol's reserve. This is the "reserve factor" in V2 terms but expressed as a rate spread rather than a percentage of borrow interest.

Compound's market dashboard shows current rates per market.

Comparison to V2 and Peers

Property

Compound V3 (Comet)

Compound V2

Aave V3

Morpho Blue

Borrowable assets

One base per market

Many shared

Many shared

One per market

Collateral assets

Many per market

Many shared

Many shared

One per market

Collateral earns yield

No

Yes

Yes

No

Risk isolation

Per market

Pool-wide

Isolation mode (opt-in)

Per market (immutable)

Liquidation

Auction-style absorb

Open liquidator

Open liquidator

Open liquidator

Governance

COMP token

COMP token

AAVE token

Morpho DAO

Comet's loss of "collateral earns interest" is the largest user-visible regression from V2. A V2 user posting WETH as collateral and borrowing USDC earned WETH supply yield on top of the borrow position; the same in Comet earns nothing on the WETH leg. Compound's design choice was to trade that yield-stacking feature for substantially better risk isolation. Whether the trade is worthwhile depends on the user.

Migration from V2

Compound V2 remains operational but is no longer the recommended deployment. Compound governance has shifted listings and incentives toward V3. The migration path:

  • Repay V2 debt, withdraw V2 collateral.

  • Deposit collateral and base asset into V3 Comet of choice.

  • Adjust position sizing — V3 BCFs are conservative relative to V2 collateral factors.

The Comet UI ships a one-click migration tool for the most common cases. Aggregator routes (Instadapp, DeFi Saver) also exist.

Eco's Role in Cross-Chain Comet Access

Compound V3 deploys per chain, with each chain running independent Comet markets. A user with USDC on Polygon who wants the higher base APY on Comet's Arbitrum USDC deployment must bridge. Eco moves stablecoins across 15 supported chains as a single intent in seconds, removing the friction. For lenders chasing supply APY across Comet deployments — or arbitraging between Comet, Aave, and Morpho on different chains — the cross-chain routing is the operational unlock. Eco Routes (CLI + API) is the integration surface; the rate decision stays with the user.

The Per-Market Specialization Pattern

Comet's one-base-per-market design has produced a specialization pattern across deployments. Looking at the deployed Comets as of April 2026:

  • USDC Comet (Ethereum, Base, Arbitrum, Polygon, Optimism). The flagship deployment in each chain. Stablecoin lending is the dominant use case.

  • ETH Comet (Ethereum, Arbitrum, Base). Designed for ETH-collateral users who want to borrow ETH (e.g., for shorting or for arbitrage). Smaller TVL than USDC Comet.

  • USDT Comet (Ethereum, Polygon). USDT-denominated lending, primarily for non-US users.

  • USDS Comet (Ethereum). The newest deployment, capturing USDS demand outside of Spark.

The specialization is governance-emergent rather than designed. Each Comet's parameters get tuned to its base asset's specific risk profile — USDT Comet has tighter collateral caps because USDT carries more counterparty risk; ETH Comet has shorter liquidation curves because ETH price moves faster than stablecoin pairs.

Native Reward Distribution

Comet ships a native reward distribution mechanism that V2 lacked. Each market can stream COMP rewards to suppliers, borrowers, or both, with rates set by governance. As of April 2026, the USDC Comet on Base streams approximately $1.2M in COMP rewards monthly, split roughly 60/40 supplier/borrower.

Practical effect: stated supply APY on Comet should be read as base APY plus COMP incentive APY. The two combine to produce the headline yield that yield aggregators surface. When COMP price moves, the incentive APY moves; this is a non-trivial source of variance for depositors who don't track it.

Comet's Liquidation Mechanics in Detail

The absorb() function deserves a closer look because it differs from Aave's open liquidator market. When a Comet position becomes liquidatable:

  1. Anyone (the "absorber") calls absorb() on the underwater account.

  2. The protocol seizes the borrower's collateral at the configured discount and credits the borrower with base-asset value (effectively repaying the borrower's debt).

  3. The seized collateral sits in the protocol's reserve, available for sale via buyCollateral().

  4. Anyone can call buyCollateral() to purchase seized collateral by depositing base asset, capped by the configured price discount.

The two-step (absorb, then buy) separates the legal liquidation event from the actual collateral sale. This avoids the front-running and MEV that Aave's open liquidation market suffers — there is no race to be first to liquidate, because the absorb is permissionless and pays only gas. The buyCollateral() step is where economic value is transferred, but it's structured as an open auction with a gradually-decreasing discount, not a winner-take-all race.

Practical consequence: liquidations on Comet generate less protocol-side bad debt than on Aave during fast crashes, because the absorb step decouples from market conditions. Bad debt arises only when collateral can't be sold via buyCollateral() at the configured discount within a reasonable time.

Comet's Configurator Pattern

One architectural detail worth understanding: Comet uses a Configurator contract to manage upgradeable parameters. The Comet contract itself is upgradeable via UUPS proxy; the Configurator holds the parameter values that Comet reads. Governance updates parameters by calling functions on the Configurator, which then propagates changes to the live Comet at the next upgrade.

The pattern means parameter changes are not instant. A governance vote to change USDC's borrow collateral factor takes effect on the next configurator deployment, typically 1–2 days after the vote passes. This bounded delay is a feature: it gives users a window to react before parameter changes hit live.

The downside: emergency parameter changes during stress events are slower than on protocols that update parameters synchronously with governance votes. Aave's risk steward model can change parameters within a few hours; Comet's configurator pattern takes longer.

Comet vs Compound V2 in Practice

Compound V2 still has $400M+ in TVL as of April 2026, with active depositors who haven't migrated. Reasons users stay on V2 include:

  • Multi-asset borrowing. V2 lets users borrow any listed asset against any collateral; V3 restricts borrowing to the base asset per market. Users running multi-asset borrow positions face higher operational complexity on V3.

  • Yield-stacking on collateral. V2 collateral earns supply yield while serving as borrow backing; V3 collateral does not. A user posting WETH and borrowing USDC earns the WETH supply rate on V2 but nothing on V3 collateral.

  • Existing integrations. Some yield aggregators and DeFi apps still integrate against V2 contracts and haven't migrated. Users following those apps stay on V2 by default.

Compound governance has steadily reduced V2 incentives without forcing migration. The expectation is that V2 TVL continues to decline through 2026 and 2027 as the long tail of integrations updates.

Comet Reward Distribution Specifics

Comet's COMP reward distribution operates per-market, with rates set independently for each Comet deployment. The current state across major Comets as of April 2026:

  • USDC Comet (Ethereum): ~$2.1M monthly COMP rewards, split 50/50 supply/borrow.

  • USDC Comet (Base): ~$1.2M monthly, weighted toward suppliers.

  • USDC Comet (Arbitrum): ~$800K monthly, similar weighting.

  • ETH Comet (Ethereum): ~$400K monthly, smaller because TVL is smaller.

  • USDS Comet (Ethereum): ~$300K monthly, growing as USDS adoption rises.

Reward rates change via governance votes, typically with 2–4 week lead time. Yield aggregators that surface "Compound APY" usually combine base interest plus current incentive rates; users should check both legs because incentives can change.

Comet's Forward Roadmap

The Compound governance roadmap as of April 2026 includes three notable items: native cross-chain liquidity (similar in concept to Aave V4's roadmap, using CCIP for fungibility); expanded base-asset support (potentially adding native lending markets for non-USDC stables in larger size); and a possible Compound V4 architecture announcement that would address the per-market liquidity fragmentation problem. None of these have shipped yet, but they shape how integrators plan multi-year deployments on Compound. Users running existing positions on Comet are not affected, but new integrations should account for the roadmap.

FAQ

Why can't collateral earn interest in Comet?

Comet's design isolates the borrowable-asset risk from collateral risk by holding collateral in a non-rehypothecation-able state. The protocol does not lend collateral out, so it cannot pay yield on it. The trade-off is improved risk isolation versus V2's yield-stacking model.

How is Comet liquidation different from Aave?

Comet's absorb() function transfers seized collateral directly to the protocol reserve, with the liquidator credited the discount in base asset. Aave runs an open liquidator market where any account can call liquidationCall(). Both reach the same outcome; Comet's flow is more contained.

Which chains does Compound V3 support?

As of April 2026, Comet is live on Ethereum, Base, Arbitrum, Polygon, Optimism, and Scroll. Each chain runs independent USDC, ETH, USDS, or USDT Comets per the local governance approval set.

Is Compound V2 still safe to use?

V2 contracts are operational and audited but have been deprioritized by governance. New incentives flow to V3. V2 users should plan migration over the medium term. See the DeFi Lending pillar for the broader landscape.

What is a Comet "base asset"?

The single asset that suppliers deposit and borrowers borrow in a given Comet market. Each Comet has exactly one base asset (USDC, ETH, USDT, USDS). All other listed assets in the market are collateral-only.

Did this answer your question?