KVORUM
compoundSource: Compound governor oz · #498

Update price feeds in cUSDCv3 on Arbitrum with CAPO implementation.

executedNov 15, 2025, 06:15 AM UTCbyBF0xbfe2…788d

01Summary

AISummary by Kvorumclaude-haiku-4-5

This proposal updates price feeds for wstETH and ezETH on the USDC market on Arbitrum by migrating them to CAPO (Correlated Assets Price Oracle) implementations, which are designed to track yield-bearing assets and protect against price manipulation. CAPO has been audited by OpenZeppelin.

Type
contract upgrade

Key changes

  • Update wstETH price feed to CAPO implementation for the USDC market on Arbitrum(high)
  • Update ezETH price feed to CAPO implementation for the USDC market on Arbitrum(high)
  • Deploy and upgrade price feed contracts to CAPO versions(high)
Contracts0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f0x42480C37B249e33aABaf4c22B20235656bd380680xb21b06d71c75973babde35b49ffdac3f82ad37750xd10b40ff1d92e2267d099da3509253d9da4d715e0x9c4ec768c28520b50860ea7a15bd7213a9ff58bf0x2416092f143378750bb29b79ed961ab195cceea500x5eba6ec97843163c92ab48a7ac0ccc8423c652b100x5979d7b546e38e414f7e9822514be443a4800529000x92014e7f331dfab2848a5872aa8b2e7b6f3ce8b4
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

160 words

Update price feeds in cUSDCv3 on Arbitrum with CAPO implementation.

Proposal summary

This proposal updates existing price feeds for wstETH and ezETH on the USDC market on Arbitrum.

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 and ezETH 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 and ezETH price feeds to the CAPO implementation, This sends the encoded 'updateAssetPriceFeed' and 'deployAndUpgradeTo' calls across the bridge to the governance receiver on Arbitrum.

03Mismatch analysis

AIMismatch analysis by Kvorummedium confidenceclaude-sonnet-5
Consistent

The proposal describes a single bridged action that updates the wstETH and ezETH price feeds on the Arbitrum USDC market to their CAPO implementations, executed via 'updateAssetPriceFeed' and 'deployAndUpgradeTo' calls sent across the bridge to the governance receiver. The single decoded on-chain action is a createRetryableTicket call to the well-known Arbitrum inbox/bridge address, targeting the governance receiver, whose encoded payload explicitly contains the function signatures 'updateAssetPriceFeed(address,address,address)' (appearing twice) and 'deployAndUpgradeTo(address,address)' (appearing once) — exactly matching the two assets (wstETH, ezETH) and the deploy/upgrade step described. The overall structure (a single L1 action bundling multiple L2 sub-calls via the bridge) is consistent with how Compound governance typically executes cross-chain updates, and the description explicitly acknowledges this bridging mechanism. I could not independently verify that the specific embedded addresses correspond precisely to the wstETH and ezETH asset/feed addresses on the Arbitrum USDC comet, since that requires external on-chain address lookups not available here; this limits confidence to medium rather than high. However, nothing in the calldata contradicts the description, no extra unexplained transfers or role grants are present, and the function names and counts align exactly with what the description claims, so I find no discrepancy worth flagging under the conservative reporting standard.It is worth noting the description says 'The first action' which could imply more items, but only one decoded action is provided/matches the payload, which is expected since the bridging call itself is the single top-level action encapsulating the two feed updates and the deploy/upgrade.

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

04Actions

1 total
#0createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)chain 0x1
Target
0x4dbd…ab3f
Value
2549412500000000 wei
Function
createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)
Arguments
{
  "to": "0x42480C37B249e33aABaf4c22B20235656bd38068",
  "data": "0x00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000b21b06d71c75973babde35b49ffdac3f82ad3775000000000000000000000000b21b06d71c75973babde35b49ffdac3f82ad3775000000000000000000000000d10b40ff1d92e2267d099da3509253d9da4d715e00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000002d757064617465417373657450726963654665656428616464726573732c616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d757064617465417373657450726963654665656428616464726573732c616464726573732c61646472657373290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000236465706c6f79416e6455706772616465546f28616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000600000000000000000000000009c4ec768c28520b50860ea7a15bd7213a9ff58bf0000000000000000000000002416092f143378750bb29b79ed961ab195cceea50000000000000000000000005eba6ec97843163c92ab48a7ac0ccc8423c652b100000000000000000000000000000000000000000000000000000000000000600000000000000000000000009c4ec768c28520b50860ea7a15bd7213a9ff58bf0000000000000000000000005979d7b546e38e414f7e9822514be443a480052900000000000000000000000092014e7f331dfab2848a5872aa8b2e7b6f3ce8b40000000000000000000000000000000000000000000000000000000000000040000000000000000000000000b21b06d71c75973babde35b49ffdac3f82ad37750000000000000000000000009c4ec768c28520b50860ea7a15bd7213a9ff58bf",
  "gasLimit": "1466805",
  "l2CallValue": "0",
  "maxFeePerGas": "500000000",
  "maxSubmissionCost": "1816010000000000",
  "callValueRefundAddress": "0x3fB4d38ea7EC20D91917c09591490Eeda38Cf88A",
  "excessFeeRefundAddress": "0x3fB4d38ea7EC20D91917c09591490Eeda38Cf88A"
}
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.