Price feeds operational update
01Summary
This proposal updates price feed adapters across multiple Aave markets (Ethereum v2, Optimism, Arbitrum, and Polygon) to reduce artificial volatility from de-synchronized LST feeds. Changes include: WBTC on Ethereum v2 to custom adapter, wstETH on Optimism/Arbitrum to synchronized adapters, MATICX and stMATIC on Polygon to custom adapters using on-chain rates, and configuration of price oracle sentinel for Optimism V3.
- Type
- parameter change
Key changes
- Replace WBTC price feed on Ethereum v2 with custom CLSynchronicityPriceAdapterPegToBase using WBTC/BTC/ETH(high)
- Update wstETH price feed on Optimism to custom adapter calculating wstETH/ETH/USD using Chainlink feeds(high)
- Update wstETH price feed on Arbitrum to custom adapter calculating wstETH/ETH/USD using Chainlink feeds(high)
- Replace MATICX price feed on Polygon with custom MaticSynchronicityPriceAdapter using MATIC/USD CL feed and MATICX/MATIC on-chain rate(high)
- Replace stMATIC price feed on Polygon with custom MaticSynchronicityPriceAdapter using MATIC/USD CL feed and stMATIC/MATIC on-chain rate(high)
- Configure price oracle sentinel for Aave V3 Optimism with Chainlink sequencer feed(medium)
Notable concerns
- MATICX feed shows 2.03% difference between 0.5-1% for historical data
- Historical testing shows potential feed discrepancies up to 1% in edge cases
- Custom adapters depend on on-chain rate manipulation resistance for MATICX and stMATIC
Generated by Kvorum
02Description
Simple Summary
This proposal changes the following price adapters and price oracle sentinel:
- WBTC on Ethereum v2 to the custom
WBTC / BTC / ETH - wstETH on Optimism and Arbitrum v3 to
wstETH / ETH / USD - MATICX on Polygon v3 to the custom adapter, which uses
MATIC / USDCL feed andMATICX / MATICon-chain rate - stMATIC on Polygon v3 to the custom adapter, which utilizes
MATIC / USDCL feed andstMATIC / MATICon-chain rate - price oracle sentinel is configured for Optimism V3
Motivation
The current price feeds for certain ETH and MATIC LSTs can result in artificial volatility due to de-synchronization between different asset/PEG feeds.
Additionally, the Aave community already pre-approved pricing WBTC on Aave v2 based on a WBTC feed, and not assuming that its price is the one provided by BTC/ETH.
To address this problem and enhance the stability of the Aave platform, we propose to change the price feeds for wstETH on Optimism and Arbitrum to a custom price adapter that calculates the wstETH / ETH / USD price and is based on Chainlink's feeds under the hood. The same approach is already used for the wstETH on Polygon and WBTC on Aave V3.
WBTC price feed will use the same adapter implementation, but with the WBTC / BTC / ETH inside.
MaticX and stMatic price feeds will be swapped for a special adapter, which utilizes on-chain rate.
As the Chainlink sequencer feed is available for Optimism, it also makes sense to configure the price oracle sentinel for Aave V3 Optimism, so that all L2 Aave V3 markets where the the Chainlink feed is available, are in sync.
Specification
Upon execution, the proposal will:
- call
ORACLE.setAssetSources([0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599], [0xFD858c8bC5ac5e10f01018bC78471bb0DC392247])to replace the price source forWBTCon Aave v2 - call
AaveV3Optimism.POOL_ADDRESSES_PROVIDER.setPriceOracleSentinel(0xB1ba0787Ca0A45f086F8CA03c97E7593636E47D5)to set the price oracle sentinel on the pool addresses provider - use Config Engine to update
wstETHprice feed to 0x05225Cd708bCa9253789C1374e4337a019e99D56 on Optimism - use Config Engine to update
wstETHprice feed to 0x3105C276558Dd4cf7E7be71d73Be8D33bD18F211 on Arbitrum - use Config Engine to update
MATICXprice feed to 0x0e1120524e14Bd7aD96Ea76A1b1dD699913e2a45 on Polygon - use Config Engine to update
stMATICprice feed to 0xEe96b77129cF54581B5a8FECCcC50A6A067034a1 on Polygon
Security and additional considerations
Custom price adapters are already widely used in the system for price-correlated assets and were reviewed by the auditors.
-
MaticX Historical Feeds Comparison: Comparing the answers from the current feed with the new one for the last 280 days (since CL feed was deployed) with a 4-hour step gave the following results:
- 35.91% of results differ for less than 0.1%
- 62.06% have between 0.1% and 0.5% difference
- 2.03% is between 0.5% and 1%
We also additionally double-checked all points of centralisation of MaticX to be sure that no on-chain manipulation of rates is possible.
- stMatic Historical Feeds Comparison: Comparing the answers from the current feed with the new one for the last 327 days (since CL feed was deployed) with a 4-hour step gave the following results:
- 95.39% of results differ for less than 0.1%
- 4.5% have between 0.1% and 0.5% difference
- 0.11% is between 0.5% and 1%
All points of centralisation of stMatic were also checked to be sure that on-chain manipulation of rates is impossible.
References
Tests: Ethereum V2, Optimism, Arbitrum, Polygon
Proposal payload implementation: Ethereum V2, Optimism, Arbitrum, Polygon
Price Adapters: WBTC, wstETH Optimism, wstETH Arbitrum, MaticX, stMATIC
Copyright
Copyright and related rights waived via CC0.
03Mismatch analysis
The decoded calldata consists of four high-level 'execute' calls: one direct fallback execution on Ethereum mainnet and three execute(address) calls that forward execution to per-chain payload contracts (presumably via Aave's cross-chain governance bridge). This structurally matches the description's four target networks (Ethereum V2 WBTC change, Optimism wstETH+sentinel, Arbitrum wstETH, Polygon MATICX+stMATIC). However, the specific low-level operations described in the prose (setAssetSources, setPriceOracleSentinel, Config Engine updates with exact addresses) are not visible in this decoded calldata — they would be encoded inside the target payload contracts (0x3105C27..., 0x80f2c02..., 0x6acCc15...) which are not expanded here. One payload address (0x3105C276558Dd4cf7E7be71d73Be8D33bD18F211) does match the wstETH Arbitrum address cited in the description, lending some corroboration, but the other two payload addresses (Optimism and Polygon executors) are not directly named in the description text, so a full byte-for-byte verification of asset sources, sentinel address, and feed addresses is not possible from this data alone. Given the lack of granularity in the decoded actions, I cannot confirm or deny exact value/target matches for the sentinel address or the WBTC/MATICX/stMATIC feed addresses cited in the description. There is no evidence of contradiction, extra actions, or omitted actions relative to the description — the action count and general flow align with what's described — but confidence is low because the underlying payload contents are opaque in this decoded data.'}
Generated by Kvorum
04Actions
- Target
- 0xab22…d9cc
- Value
- 0 wei
- Function
- fallback()
- Arguments
{}- Calldata
- Target
- 0x5f5c…6711
- Value
- 0 wei
- Function
- execute(address)
- Arguments
{ "0": "0x3105C276558Dd4cf7E7be71d73Be8D33bD18F211" }- Calldata
- Target
- 0xd1b3…cfa3
- Value
- 0 wei
- Function
- execute(address)
- Arguments
{ "0": "0x80f2c02224a2E548FC67c0bF705eBFA825dd5439" }- Calldata
- Target
- 0x158a…d45b
- Value
- 0 wei
- Function
- execute(address)
- Arguments
{ "0": "0x6acCc155626E0CF8bFe97e68A17a567394D51238" }- Calldata
05Tally
Summed from votes
06Voters
No votes recorded yet.
07Forum
No forum thread is confidently linked to this proposal.
08Similar proposals
- aaveexecutedPrice feeds operational update Pt2 - stETH92%
- aaveexecutedSet Price Cap Adapters for Aave V278%
- aaveexecutedSet Price Cap Adapters (CAPO)78%
- aaveexecutedUpdate PriceOracleSentinel78%
- aaveexecutedMKR and USDtb oracle adjustments74%
- aaveexecutedAlter mUSD Oracle Price Implementation74%
- aaveexecutedUpdate xSushi price feed on Aave V273%
- aaveexecutedUpdate USDG Price Feed on Aave V3 Instances72%
- aaveexecutedLBTC and eBTC Price Feeds Update72%
- aaveexecutedFixed REP price feed on AAVE v167%