KVORUM
compoundSource: Compound governor oz · #512

[Gauntlet] Compound V2 Deprecation Proposal v2

executedDec 6, 2025, 04:58 PM UTCby680x683a…6c02

01Summary

AISummary by Kvorumclaude-haiku-4-5

Deprecate Compound V2 by pausing all borrows and mints across all assets and setting reserve factors to 100% for all V2 cTokens on Mainnet.

Type
protocol deprecation

Key changes

  • Pause all borrowing for all Compound V2 cToken assets(high)
  • Pause all minting for all Compound V2 cToken assets(high)
  • Set reserve factors to 100% (1000000000000000000 mantissa) for all Compound V2 cToken assets(high)

Notable concerns

  • The proposal represents a full shutdown of Compound V2, preventing new borrows and deposits
  • Users with existing positions on V2 will be unable to mint new cTokens or take on new borrowing, though repayment appears still possible
Contracts0xe65cdb6479bac1e22340e4e755fae7e509ecd06c0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b0x6c8c6b02e7b2be14d4fa6022dfd6d75921d90e4e0x5d3a536e4d6dbd6114cc1ead35777bab948e36430x4ddc2d193948926d02f9b1fe9e1daa0718270ed50xface851a4921ce59e912d19329929ce6da6eb0c70x95b4ef2869ebd94beb4eee400a99824bf5dc325b0x4b0181102a0112a2ef11abee5563bb4a3176c9d70x12392f67bdf24fae0af363c24ac620a2f67dad860x35a18000230da775cac24873d00ff85bccded5500x39aa39c021dfbae8fac545936693ac917d5e75630x041171993284df560249b57358f931d9eb7b925d0xf650c3d88d12db855b8bf7d11be6c55a4e07dcc90xccf4429db6322d5c611ee964527d42e5d685dd6a0x80a2ae356fc9ef4305676f7a3e2ed04e12c339460xb3319f5d18bc0d84dd1b4825dcde5d5f7266d4070x70e36f6bf80a52b3b46b3af8e106cc0ed743e8e4
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

140 words

[Gauntlet] Compound V2 Deprecation Proposal v2

Simple Summary

Compound V2 Deprecation Proposal

  • Pause borrows and mints for all assets on Compound V2
  • Increase Reserve Factors to 100% for all assets on Compound v2

Note: In response to community feedback, Gauntlet has recommended adding USDC & USDT as collaterals on Mainnet WETH & WBTC. The Mainnet WETH listing has already gone on-chain (Tally). The Mainnet WBTC listing will be proposed later this week.

Motivation

Full proposals and forum discussions can be found in the following post.

Specification

The proposal updates the parameters by using the respective methods on the Configurator.

By approving this proposal, you agree that any services provided by Gauntlet shall be governed by the terms of service available at gauntlet.xyz/tos

03Mismatch analysis

AIMismatch analysis by Kvorumclaude-sonnet-5
Consistent

The proposal claims two core actions: (1) pause borrows and mints for all Compound V2 assets, and (2) raise reserve factors to 100% for all assets. The decoded calldata contains 38 actions across the Comptroller (0x3d98...) and individual cToken contracts, consisting exclusively of _setReserveFactor calls setting the mantissa to 1e18 (100%, matching the '100%' claim after unit conversion) and _setBorrowPaused/_setMintPaused calls setting state=true for a broad set of cToken addresses on mainnet. No action transfers funds, changes admin/ownership, or targets an unrelated contract — all targets are either the known Comptroller address or individual cToken markets, consistent with a Compound V2 Configurator-style deprecation. Not every market has both a mint-pause and a borrow-pause call (some only have borrow-pause), but this is a reasonable summarization difference (e.g., markets where minting may already be disabled or not applicable) rather than a material contradiction — the description's blanket claim about 'all assets' aligns directionionally and in intent with the batch of pause/reserve-factor calls seen. The Note about USDC/USDT collateral listings for WETH/WBTC is explicitly described as separate, already-submitted or upcoming proposals, not part of this calldata, and indeed no such listing action appears here, so there's no extra-action issue. No value mismatches, no target mismatches, no omitted high-impact actions, and no misleading phrasing were found. Confidence is high because the calldata is fully decoded and directly maps to the two claimed action types with correct magnitudes (1e18 = 100%).

Generated by Kvorum
model: claude-sonnet-5
provider: anthropic
profile: anthropic-strong-v1
prompt: v1.0
generated: 2mo ago
Review the decoded actions ↗

04Actions

38 total
#0_setReserveFactor(uint256)chain 0x1
Target
0xe65c…d06c
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#1_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0xe65cdB6479BaC1e22340E4E755fAE7E509EcD06c"
}
Calldata
#2_setReserveFactor(uint256)chain 0x1
Target
0x6c8c…0e4e
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#3_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4E"
}
Calldata
#4_setReserveFactor(uint256)chain 0x1
Target
0x5d3a…3643
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#5_setMintPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setMintPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643"
}
Calldata
#6_setReserveFactor(uint256)chain 0x1
Target
0x4ddc…0ed5
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#7_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5"
}
Calldata
#8_setMintPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setMintPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5"
}
Calldata
#9_setReserveFactor(uint256)chain 0x1
Target
0xface…b0c7
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#10_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0xFAce851a4921ce59e912d19329929CE6da6EB0c7"
}
Calldata
#11_setReserveFactor(uint256)chain 0x1
Target
0x95b4…325b
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#12_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x95b4eF2869eBD94BEb4eEE400a99824BF5DC325b"
}
Calldata
#13_setReserveFactor(uint256)chain 0x1
Target
0x4b01…c9d7
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#14_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x4B0181102A0112A2ef11AbEE5563bb4a3176c9d7"
}
Calldata
#15_setReserveFactor(uint256)chain 0x1
Target
0x1239…ad86
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#16_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x12392F67bdf24faE0AF363c24aC620a2f67DAd86"
}
Calldata
#17_setMintPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setMintPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x12392F67bdf24faE0AF363c24aC620a2f67DAd86"
}
Calldata
#18_setReserveFactor(uint256)chain 0x1
Target
0x35a1…d550
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#19_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x35A18000230DA775CAc24873d00Ff85BccdeD550"
}
Calldata
#20_setReserveFactor(uint256)chain 0x1
Target
0x39aa…7563
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#21_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x39AA39c021dfbaE8faC545936693aC917d5E7563"
}
Calldata
#22_setMintPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setMintPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x39AA39c021dfbaE8faC545936693aC917d5E7563"
}
Calldata
#23_setReserveFactor(uint256)chain 0x1
Target
0x0411…925d
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#24_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x041171993284df560249B57358F931D9eB7b925D"
}
Calldata
#25_setMintPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setMintPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x041171993284df560249B57358F931D9eB7b925D"
}
Calldata
#26_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9"
}
Calldata
#27_setMintPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setMintPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9"
}
Calldata
#28_setReserveFactor(uint256)chain 0x1
Target
0xccf4…dd6a
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#29_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0xccF4429DB6322D5C611ee964527D42E5d685DD6a"
}
Calldata
#30_setMintPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setMintPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0xccF4429DB6322D5C611ee964527D42E5d685DD6a"
}
Calldata
#31_setReserveFactor(uint256)chain 0x1
Target
0x80a2…3946
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#32_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x80a2AE356fc9ef4305676f7a3E2Ed04e12C33946"
}
Calldata
#33_setReserveFactor(uint256)chain 0x1
Target
0xb331…d407
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#34_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0xB3319f5D18Bc0D84dD1b4825Dcde5d5f7266d407"
}
Calldata
#35_setBorrowPaused(address,bool)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setBorrowPaused(address,bool)
Arguments
{
  "state": true,
  "cToken": "0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643"
}
Calldata
#36_setReserveFactor(uint256)chain 0x1
Target
0x70e3…e8e4
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata
#37_setReserveFactor(uint256)chain 0x1
Target
0xf650…dcc9
Value
0 wei
Function
_setReserveFactor(uint256)
Arguments
{
  "newReserveFactorMantissa": "1000000000000000000"
}
Calldata

05Tally

Summed from votes

Voters0
VP participating0
Outcome (current)—
Current support—

06Voters

0 total

No votes recorded yet.

07Forum

AIForum synthesis by Kvorumclaude-haiku-4-5
sentiment · favorablethread · constructive

Arguments for

  • V2's pooled-collateral model creates systemic risk through cross-asset contagion and introduces unnecessary complexity compared to V3's proven production design.— Gauntlet
  • V2's broad parameter surface requires continual monitoring and increases misconfiguration risk, expanding the protocol's attack surface.— Gauntlet
  • V2 has experienced significant usage decline with the majority of activity shifted to V3, making continued maintenance of two versions inefficient.— Gauntlet
  • The deprecation plan is secure and does not include major protocol changes, while meaningfully reducing attack surface and complexity.— ioannis_csec
  • V2's design is less gas-efficient and more complex for external integrations compared to V3.— Gauntlet

Arguments against

None surfaced.

Notable participants

  • GauntletProposal author who introduced the V2 deprecation plan, timeline, and managed the voting process.
  • ioannis_csecSecurity provider expressing explicit support for the deprecation plan on behalf of SSPs.
  • CataUser requesting technical guidance on migrating positions from V2 to V3.
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Open the thread ↗