[Gauntlet] Compound V2 Deprecation Proposal v2
01Summary
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
Generated by Kvorum
02Description
[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
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
04Actions
- Target
- 0xe65c…d06c
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0xe65cdB6479BaC1e22340E4E755fAE7E509EcD06c" }- Calldata
- Target
- 0x6c8c…0e4e
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4E" }- Calldata
- Target
- 0x5d3a…3643
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setMintPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643" }- Calldata
- Target
- 0x4ddc…0ed5
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setMintPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5" }- Calldata
- Target
- 0xface…b0c7
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0xFAce851a4921ce59e912d19329929CE6da6EB0c7" }- Calldata
- Target
- 0x95b4…325b
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x95b4eF2869eBD94BEb4eEE400a99824BF5DC325b" }- Calldata
- Target
- 0x4b01…c9d7
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x4B0181102A0112A2ef11AbEE5563bb4a3176c9d7" }- Calldata
- Target
- 0x1239…ad86
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x12392F67bdf24faE0AF363c24aC620a2f67DAd86" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setMintPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x12392F67bdf24faE0AF363c24aC620a2f67DAd86" }- Calldata
- Target
- 0x35a1…d550
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x35A18000230DA775CAc24873d00Ff85BccdeD550" }- Calldata
- Target
- 0x39aa…7563
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x39AA39c021dfbaE8faC545936693aC917d5E7563" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setMintPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x39AA39c021dfbaE8faC545936693aC917d5E7563" }- Calldata
- Target
- 0x0411…925d
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x041171993284df560249B57358F931D9eB7b925D" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setMintPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x041171993284df560249B57358F931D9eB7b925D" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setMintPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9" }- Calldata
- Target
- 0xccf4…dd6a
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0xccF4429DB6322D5C611ee964527D42E5d685DD6a" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setMintPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0xccF4429DB6322D5C611ee964527D42E5d685DD6a" }- Calldata
- Target
- 0x80a2…3946
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x80a2AE356fc9ef4305676f7a3E2Ed04e12C33946" }- Calldata
- Target
- 0xb331…d407
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0xB3319f5D18Bc0D84dD1b4825Dcde5d5f7266d407" }- Calldata
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setBorrowPaused(address,bool)
- Arguments
{ "state": true, "cToken": "0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643" }- Calldata
- Target
- 0x70e3…e8e4
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
- Target
- 0xf650…dcc9
- Value
- 0 wei
- Function
- _setReserveFactor(uint256)
- Arguments
{ "newReserveFactorMantissa": "1000000000000000000" }- Calldata
05Tally
Summed from votes
06Voters
No votes recorded yet.
07Forum
- [Gauntlet] Compound V2 Deprecation Proposal ↗discourse · high confidence
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
08Similar proposals
- compounddefeated[Gauntlet] Compound V2 Deprecation91%
- compoundexecuted[Gauntlet] 2024-03-11: Compound V2 Deprecation (Phase 10) - Part 183%
- compounddefeated[Gauntlet] 2024-03-04: Compound V2 Deprecation (Phase 10) - Part 183%
- compoundexecuted[Gauntlet] 2023-01-14: Compound v2 Deprecation (Phase 7)82%
- compoundexecuted[Gauntlet] 2023-09-11: Compound v2 Deprecation (Phase 1)82%
- compoundexecuted[Gauntlet] 2023-10-09: Compound v2 Deprecation (Phase 2)82%
- compoundexecuted[Gauntlet] 2024-03-18: Compound v2 Deprecation (Phase 10) - Part 281%
- compoundexecuted[Gauntlet] Compound v2 Deprecation (10/07/2024)80%
- compoundexecuted[Gauntlet] 2023-12-04: Compound v2 Deprecation (Phase 5)80%
- compoundexecutedCompound v2 Deprecation Phase 1379%