KVORUM
aaveSource: Aave governance v3 · #487

CAPO SnapshotRatio Update Across Aave V3

executedMay 24, 2026, 07:38 AM UTCby660x66a2…73ff

01Summary

AISummary by Kvorumclaude-haiku-4-5

LlamaRisk proposes updating CAPO (Collateral Price Oracle) snapshot ratios and timestamps across multiple Aave V3 instances to address stale snapshots and widening spreads between upper bounds and current exchange rates, which could expose the protocol to inflation attack risks. Additionally, reduce sUSDe's maxYearlyRatioGrowthPercent from 50% to 11.17% on Ethereum.

Type
parameter change

Key changes

  • Refresh snapshotRatio and snapshotTimestamp for 21 yield-bearing asset instances across 7 networks (sUSDe, rETH, MaticX, weETH, ETHx, osETH, wstETH, ezETH, cbETH, sAVAX, sDAI) to anchor CAPO caps to recent on-chain readings rather than year-old reference points(high)
  • Reduce sUSDe maxYearlyRatioGrowthPercent from 50% to 11.17% on Ethereum (affects both Core and Lido markets) to better reflect realized APY(high)

Notable concerns

  • Without this update, the widening spread between CAPO upper bound and current exchange rate increases vulnerability to inflation attacks where adversaries artificially push exchange rates upward, potentially resulting in overpriced collateral, undercollateralized positions, and bad debt for the protocol
ContractsAaveV3EthereumAaveV3PolygonAaveV3AvalancheAaveV3GnosisAaveV3LineaAaveV3PlasmaAaveV3MantleAaveV3EthereumLido
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

742 words

Simple Summary

LlamaRisk proposes updating the snapshotRatio to address stale snapshots and the growing drift between the CAPO upper bound and the current ratio across Aave V3. This update addresses the risk stemming from the widening spread, where, in the event of an inflation attack, collateral could become materially overpriced, potentially resulting in undercollateralized positions and bad debt for the protocol.

Motivation

The spread between the CAPO upper bound and the current exchange rate for yield-bearing assets on Aave has widened due to a combination of high maxYearlyRatioGrowthPercent values and outdated snapshots. In the event of an inflation attack, where an adversary artificially pushes the underlying exchange-rate source upward, the collateral may become overpriced. The amount of borrows that can be accumulated against this overpriced collateral is directly driven by the magnitude of the spread between the current exchange rate and the CAPO upper bound. If the spread becomes sufficiently large, the position may become undercollateralized once the exchange rate normalizes, potentially resulting in bad debt for the protocol.

Specification

The proposal refreshes the snapshotRatio and snapshotTimestamp for the reserves listed above, anchoring the cap to recent on-chain readings rather than year-old reference points. The new snapshot for each adapter is selected from the historical getRatio() series (verifiable on-chain) such that all four validation predicates of _setCapParameters are respected: the new timestamp is strictly greater than the stored one, is at least MINIMUM_SNAPSHOT_DELAY seconds in the past, is no more than MAXIMUM_SNAPSHOT_TERM (180 days) in the past, the new ratio is non-zero, and snapshotRatio <= currentRatio.

In addition to the snapshot refresh, we recommend an additional change to the sUSDe CAPO on Ethereum (affects both Core and Lido markets). The adapter is currently configured with a maxYearlyRatioGrowthPercent of 50%, far above realized APY as shown below. Accounting for future growth scenario we recommend lowering maxYearlyRatioGrowthPercent from 50% to 11.17%.

InstanceAssetCurrent SnapshotRatioNew SnapshotRatioCurrent SnapshotTimestampNew SnapshotTimestamp
Ethereum PrimesUSDe115048599296969869412271319927514110961737789743 (2025-01-25)1776098039 (2026-04-13)
Ethereum CoresUSDe115048599296969869412271319927514110961737789743 (2025-01-25)1776098039 (2026-04-13)
Ethereum CorerETH109828451774000824911612970250180263671708004591 (2024-02-15)1776100271 (2026-04-13)
PolygonMaticX109862503934490051311845533363047441301707352792 (2024-02-08)1776095251 (2026-04-13)
Ethereum CoreweETH103465687864504050510925112759515480291711416299 (2024-03-26)1776098051 (2026-04-13)
Ethereum CoreETHx102965022944406723810868031713999185431715877911 (2024-05-16)1776097967 (2026-04-13)
Ethereum CoreosETH101444587843944141310692437916261777731713934379 (2024-04-24)1776100271 (2026-04-13)
PolygonwstETH115710599545394198012317874234042905911707948441 (2024-02-14)1776095275 (2026-04-13)
GnosiswstETH115710599545394198012317067438203205051707988835 (2024-02-15)1776087290 (2026-04-13)
Ethereum CoreezETH101988370800336100610761592658307488461727172839 (2024-09-24)1776100259 (2026-04-13)
Ethereum PrimeezETH101988370800336100610761592658307488461727172839 (2024-09-24)1776100259 (2026-04-13)
Ethereum CorecbETH106381426995397433411276727234901073111708004591 (2024-02-15)1776097967 (2026-04-13)
AvalanchesAVAX113053565484720578912580048939895294491707346799 (2024-02-07)1776080367 (2026-04-13)
LineawstETH119027282852553850212317067438203205051736592058 (2025-01-11)1776040336 (2026-04-13)
LineaezETH102914060889042542210760909722977867411733109809 (2024-12-02)1776040248 (2026-04-13)
PlasmasUSDe119397266585497504812270174735828806241756871339 (2025-09-03)1776095930 (2026-04-13)
LineaweETH105416960518064972110924472952852876941733109809 (2024-12-02)1776040278 (2026-04-13)
AvalanchesUSDe119397266585497504812270062479573611731756871339 (2025-09-03)1776080378 (2026-04-13)
PlasmaweETH107596466760278480310924472952852876941756871339 (2025-09-03)1776095953 (2026-04-13)
MantlesUSDe121377711388893885312270139662085002351767152639 (2025-12-31)1776095860 (2026-04-13)
GnosissDAI117560344758159687012349337369530014111746358275 (2025-05-04)1776087275 (2026-04-13)

Both Ethereum Core and Lido markets utilize the same CAPO for sUSDe.

InstanceAssetCurrent maxYearlyRatioGrowthPercentRecommended maxYearlyRatioGrowthPercent
EthereumsUSDe50%11.17%

References

Copyright

Copyright and related rights waived via CC0.

03Mismatch analysis

AIMismatch analysis by Kvorumlow confidenceclaude-sonnet-5
Consistent

The proposal's decoded on-chain action set contains a single generic call: execute() on a payload contract at 0x3054...270e8 on Ethereum, with no decoded arguments. This is the typical Aave Governance v3 pattern where all specific logic (updating snapshotRatio/snapshotTimestamp for ~21 reserve adapters across 8 networks, and lowering maxYearlyRatioGrowthPercent for sUSDe from 50% to 11.17%) is encoded directly in the payload contract's bytecode and executed internally when execute() is invoked, rather than being passed as explicit calldata arguments visible to this decoder. Because the decoded action carries no parameters, I cannot independently verify the specific snapshot ratios, timestamps, or the percentage change against calldata — there is simply no data to compare against the numbers in the proposal's tables. I found no evidence of a mismatch (no target contradicts the description, no extra or missing high-level action is visible), but the lack of granular decoded arguments means confidence in a full reconciliation is low. This is a structural limitation of how Aave payload proposals are decoded, not a red flag by itself, and is consistent with the description's claim of a single coordinated update across the referenced payload contracts linked in the References section.

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
#0fallback()chain 0x1
Target
0x3054…70e8
Value
0 wei
Function
fallback()
Arguments
{}
Calldata

05Tally

Summed from votes

Voters18
VP participating410.4K
Outcome (current)For
Current support100%

06Voters

18 total

No votes recorded yet.

07Forum

No forum thread is confidently linked to this proposal.