Update price feeds in cWETHv3 on Mainnet with CAPO implementation.
01Summary
Updates price feeds for 8 liquid staking tokens (wstETH, rsETH, weETH, osETH, rswETH, ETHx, ezETH, rETH) on the WETH market on Mainnet to use CAPO (Correlated Assets Price Oracle) implementations, which better handle assets that accumulate yield over time, and upgrades the Comet contract to a new version.
- Type
- contract upgrade
Key changes
- Replace price feed for wstETH with CAPO implementation(high)
- Replace price feed for rsETH with CAPO implementation(high)
- Replace price feed for weETH with CAPO implementation(high)
- Replace price feed for osETH with CAPO implementation(high)
- Replace price feed for rswETH with CAPO implementation(high)
- Replace price feed for ETHx with CAPO implementation(high)
- Replace price feed for ezETH with CAPO implementation(high)
- Replace price feed for rETH with CAPO implementation(high)
Notable concerns
- CAPO is a new oracle mechanism implementation; while audited by OpenZeppelin, market adoption and long-term performance data should be monitored
Generated by Kvorum
02Description
Update price feeds in cWETHv3 on Mainnet with CAPO implementation.
Proposal summary
This proposal updates existing price feeds for wstETH, rsETH, weETH, osETH, rswETH, ETHx, ezETH and rETH on the WETH market on Mainnet.
CAPO summary
CAPO is a price oracle adapter designed to support assets that grow gradually relative to a base asset - such as liquid staking tokens that accumulate yield over time. It provides a mechanism to track this expected growth while protecting downstream protocol from sudden or manipulated price spikes. wstETH, rsETH, weETH, osETH, rswETH, ETHx, ezETH and rETH price feeds are updated to their CAPO implementations.
Further detailed information can be found on the corresponding proposal pull request and forum discussion for CAPO.
CAPO audit
CAPO has been audited by OpenZeppelin, as well as the LST / LRT implementation here.
Proposal actions
The first action updates wstETH price feed. The second action updates rsETH price feed. The third action updates weETH price feed. The fourth action updates osETH price feed. The fifth action updates rswETH price feed. The sixth action updates ETHx price feed. The seventh action updates ezETH price feed. The eighth action updates rETH price feed. The ninth action deploys and upgrades Comet to a new version.
03Mismatch analysis
The proposal describes 9 sequential actions: eight price-feed updates for named LST/LRT assets (wstETH, rsETH, weETH, osETH, rswETH, ETHx, ezETH, rETH) followed by a Comet deploy-and-upgrade. The decoded calldata contains exactly 9 actions in the same order: eight calls to updateAssetPriceFeed(asset, cometProxy, newPriceFeed) all targeting the same Configurator contract and the same cometProxy address (0xA175...93aE94, consistent with a single WETH market on Mainnet), followed by a deployAndUpgradeTo(cometProxy, configuratorProxy) call that matches the described Comet upgrade action. The action count, ordering, and function types line up cleanly with the narrative, and there is no sign of value manipulation, target redirection, or extra/missing steps. I cannot independently verify that each raw asset address literally corresponds to the named token (e.g., that address 0x7f39...2Ca0 is indeed wstETH) since token symbols aren't included in the calldata, which limits confidence to medium rather than high, but nothing in the structure or targets contradicts the description. No discrepancies were found that a careful reviewer would need to be warned about.
Generated by Kvorum
04Actions
- Target
- 0x316f…36e3
- Value
- 0 wei
- Function
- updateAssetPriceFeed(address,address,address)
- Arguments
{ "asset": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "newPriceFeed": "0x91359Ce8989CB610A4127777828E667F23b94ee9" }- Calldata
- Target
- 0x316f…36e3
- Value
- 0 wei
- Function
- updateAssetPriceFeed(address,address,address)
- Arguments
{ "asset": "0xA1290d69c65A6Fe4DF752f95823fae25cB99e5A7", "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "newPriceFeed": "0x5AbcFC8A649Ac15Ff7d41c0Dd0d53aF3bBb7F876" }- Calldata
- Target
- 0x316f…36e3
- Value
- 0 wei
- Function
- updateAssetPriceFeed(address,address,address)
- Arguments
{ "asset": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "newPriceFeed": "0x5641Af9AB0794aFcc5c9B036f6E01144bA42E747" }- Calldata
- Target
- 0x316f…36e3
- Value
- 0 wei
- Function
- updateAssetPriceFeed(address,address,address)
- Arguments
{ "asset": "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38", "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "newPriceFeed": "0xdf08cd1B9d40a106B49B74F70c1CCa60596edeDc" }- Calldata
- Target
- 0x316f…36e3
- Value
- 0 wei
- Function
- updateAssetPriceFeed(address,address,address)
- Arguments
{ "asset": "0xFAe103DC9cf190eD75350761e95403b7b8aFa6c0", "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "newPriceFeed": "0x0cA9231A11c242206139A6DD8Bf532F885516F96" }- Calldata
- Target
- 0x316f…36e3
- Value
- 0 wei
- Function
- updateAssetPriceFeed(address,address,address)
- Arguments
{ "asset": "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b", "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "newPriceFeed": "0x9f4001c75295049Dc5D566acfB27054D1fa1af35" }- Calldata
- Target
- 0x316f…36e3
- Value
- 0 wei
- Function
- updateAssetPriceFeed(address,address,address)
- Arguments
{ "asset": "0xbf5495Efe5DB9ce00f80364C8B423567e58d2110", "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "newPriceFeed": "0xF5600F17F7d3D87d0e0Fdafe01Dbe513919C6bf8" }- Calldata
- Target
- 0x316f…36e3
- Value
- 0 wei
- Function
- updateAssetPriceFeed(address,address,address)
- Arguments
{ "asset": "0xae78736Cd615f374D3085123A210448E74Fc6393", "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "newPriceFeed": "0x9feAc5a70435ef209F4013D46945AC1d4cba9397" }- Calldata
- Target
- 0x1ec6…8779
- Value
- 0 wei
- Function
- deployAndUpgradeTo(address,address)
- Arguments
{ "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94", "configuratorProxy": "0x316f9708bB98af7dA9c68C1C3b5e79039cD336E3" }- Calldata
05Tally
Summed from votes
06Voters
No votes recorded yet.
07Forum
No forum thread is confidently linked to this proposal.
08Similar proposals
- compoundcanceledUpdate price feeds in cWETHv3 on Mainnet with CAPO implementation.100%
- compoundexecutedUpdate price feeds in cWstETHv3 on Mainnet with CAPO implementation.97%
- compoundexecutedUpdate price feeds in cWETHv3 on Unichain with CAPO implementation.94%
- compoundexecutedUpdate price feeds in cWETHv3 on Base with CAPO implementation.94%
- compoundexecutedUpdate price feeds in cUSDCv3, cUSDTv3 and cWETHv3 on Optimism with CAPO implementation.93%
- compoundexecutedUpdate price feeds in cUSDCv3 and cWETHv3 on Linea with CAPO implementation.91%
- compoundexecutedUpdate price feeds in cUSDCv3 on Arbitrum with CAPO implementation.89%
- compoundexecutedUpdate wstETH price feed in cAEROv3 on Base with CAPO implementation.89%
- compoundexecutedUpdate rETH price feed in cWETHv3 on Mainnet89%
- compoundexecutedUpdate sFRAX CAPO snapshot value on Mainnet64%