KVORUM
compoundSource: Compound governor oz · #509

Update price feeds in cWETHv3 on Mainnet with CAPO implementation.

executedDec 1, 2025, 08:35 AM UTCbyBF0xbfe2…788d

01Summary

AISummary by Kvorumclaude-haiku-4-5

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
Contracts0xA17581A9E3356d9A858b789D68B4d866e593aE940x316f9708bb98af7da9c68c1c3b5e79039cd336e30x1ec63b5883c3481134fd50d5daebc83ecd2e8779
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

209 words

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

AIMismatch analysis by Kvorummedium confidenceclaude-sonnet-5
Consistent

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
model: claude-sonnet-5
provider: anthropic
profile: anthropic-strong-v1
prompt: v1.0
generated: 2mo ago
Review the decoded actions ↗

04Actions

9 total
#0updateAssetPriceFeed(address,address,address)chain 0x1
Target
0x316f…36e3
Value
0 wei
Function
updateAssetPriceFeed(address,address,address)
Arguments
{
  "asset": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "newPriceFeed": "0x91359Ce8989CB610A4127777828E667F23b94ee9"
}
Calldata
#1updateAssetPriceFeed(address,address,address)chain 0x1
Target
0x316f…36e3
Value
0 wei
Function
updateAssetPriceFeed(address,address,address)
Arguments
{
  "asset": "0xA1290d69c65A6Fe4DF752f95823fae25cB99e5A7",
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "newPriceFeed": "0x5AbcFC8A649Ac15Ff7d41c0Dd0d53aF3bBb7F876"
}
Calldata
#2updateAssetPriceFeed(address,address,address)chain 0x1
Target
0x316f…36e3
Value
0 wei
Function
updateAssetPriceFeed(address,address,address)
Arguments
{
  "asset": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee",
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "newPriceFeed": "0x5641Af9AB0794aFcc5c9B036f6E01144bA42E747"
}
Calldata
#3updateAssetPriceFeed(address,address,address)chain 0x1
Target
0x316f…36e3
Value
0 wei
Function
updateAssetPriceFeed(address,address,address)
Arguments
{
  "asset": "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38",
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "newPriceFeed": "0xdf08cd1B9d40a106B49B74F70c1CCa60596edeDc"
}
Calldata
#4updateAssetPriceFeed(address,address,address)chain 0x1
Target
0x316f…36e3
Value
0 wei
Function
updateAssetPriceFeed(address,address,address)
Arguments
{
  "asset": "0xFAe103DC9cf190eD75350761e95403b7b8aFa6c0",
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "newPriceFeed": "0x0cA9231A11c242206139A6DD8Bf532F885516F96"
}
Calldata
#5updateAssetPriceFeed(address,address,address)chain 0x1
Target
0x316f…36e3
Value
0 wei
Function
updateAssetPriceFeed(address,address,address)
Arguments
{
  "asset": "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b",
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "newPriceFeed": "0x9f4001c75295049Dc5D566acfB27054D1fa1af35"
}
Calldata
#6updateAssetPriceFeed(address,address,address)chain 0x1
Target
0x316f…36e3
Value
0 wei
Function
updateAssetPriceFeed(address,address,address)
Arguments
{
  "asset": "0xbf5495Efe5DB9ce00f80364C8B423567e58d2110",
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "newPriceFeed": "0xF5600F17F7d3D87d0e0Fdafe01Dbe513919C6bf8"
}
Calldata
#7updateAssetPriceFeed(address,address,address)chain 0x1
Target
0x316f…36e3
Value
0 wei
Function
updateAssetPriceFeed(address,address,address)
Arguments
{
  "asset": "0xae78736Cd615f374D3085123A210448E74Fc6393",
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "newPriceFeed": "0x9feAc5a70435ef209F4013D46945AC1d4cba9397"
}
Calldata
#8deployAndUpgradeTo(address,address)chain 0x1
Target
0x1ec6…8779
Value
0 wei
Function
deployAndUpgradeTo(address,address)
Arguments
{
  "cometProxy": "0xA17581A9E3356d9A858b789D68B4d866e593aE94",
  "configuratorProxy": "0x316f9708bB98af7dA9c68C1C3b5e79039cD336E3"
}
Calldata

05Tally

Summed from votes

Voters0
VP participating0
Outcome (current)—
Current support—

06Voters

0 total

No votes recorded yet.

07Forum

No forum thread is confidently linked to this proposal.