Alter mUSD Oracle Price Implementation
01Summary
Re-enable supply and borrow caps for MetaMask USD (mUSD) on Aave v3 Ethereum and Linea networks while switching the oracle price feed from a capped feed (showing ~$0.9998) to a fixed $1 adapter to eliminate manipulation risks from thin liquidity.
- Type
- parameter change
Key changes
- Ethereum Core Supply Cap: increase from 1 mUSD to 5,000,000 mUSD(high)
- Ethereum Core Borrow Cap: increase from 1 mUSD to 4,500,000 mUSD(high)
- Linea Supply Cap: increase from 1 mUSD to 20,000,000 mUSD(high)
- Linea Borrow Cap: increase from 1 mUSD to 18,000,000 mUSD(high)
- Ethereum Core Price Feed: switch from Capped mUSD/USD (~$0.99977589) to Fixed mUSD/USD ($1)(high)
- Linea Price Feed: switch from Capped mUSD/USD (~$0.99984807) to Fixed mUSD/USD ($1)(high)
Notable concerns
- Current mUSD oracle exhibits short-lived material negative deviations due to thin liquidity on reporting venues
- Oracle deviations benefit borrowers by allowing them to accrue liabilities below true value, exposing DAO to manipulation and accounting risk
- Fixed $1 adapter assumes stable peg; genuine depeg scenario would keep debt denominated at par but may impact liquidation economics
Generated by Kvorum
02Description
Simple Summary
This proposal re-enables the supply and borrow caps for MetaMask USD (mUSD) on the Aave v3 Ethereum and Linea deployments while swapping the oracle feed on both networks to a static $1 adapter.
Motivation
Chaos Labs observed short-lived but material negative deviations in the current mUSD feed, driven by thin liquidity on the reporting venues. Because mUSD is borrow-only on the affected markets, these deviations solely benefit borrowers by letting them accrue liabilities below their true value, exposing the DAO to manipulation and accounting risk. Hardcoding the oracle to a $1 adapter eliminates this tail while keeping the protocol conservative in a genuine depeg: debt remains denominated at par, enabling liquidators to source cheaper mUSD and reducing the likelihood of bad debt. After the Risk Steward temporarily set the caps to 1 to block opportunistic borrowing during the governance process, this payload restores capacity to levels aligned with the forum specification.
Specification
| Network | Parameter | Current | Proposed |
|---|---|---|---|
| Ethereum Core | Supply Cap | 1 mUSD | 5,000,000 mUSD |
| Ethereum Core | Borrow Cap | 1 mUSD | 4,500,000 mUSD |
| Linea | Supply Cap | 1 mUSD | 20,000,000 mUSD |
| Linea | Borrow Cap | 1 mUSD | 18,000,000 mUSD |
| Ethereum Core | Price Feed | Capped mUSD / USD ($0.99977589) | Fixed mUSD / USD ($1) |
| Linea | Price Feed | Capped mUSD / USD ($0.99984807) | Fixed mUSD / USD ($1) |
References
- Implementation: AaveV3Ethereum, AaveV3Linea
- Tests: AaveV3Ethereum, AaveV3Linea
- Discussion
- Snapshot: Direct To AIP
Copyright
Copyright and related rights waived via CC0.
03Mismatch analysis
The decoded calldata contains only one on-chain action: a parameterless execute() call to a payload contract address on Ethereum mainnet. This is the standard pattern used by Aave governance v3 proposals (matching the linked AaveV3Ethereum_AlterMUSDOraclePriceImplementation and AaveV3Linea_AlterMUSDOraclePriceImplementation implementation contracts referenced in the description), where the actual logic—setting supply/borrow caps and swapping oracle feeds on both Ethereum and Linea (via a cross-chain bridge message)—is embedded in the payload contract's bytecode and not exposed as separate decodable calldata arguments here. Because the calldata gives no visibility into the specific numeric cap values or oracle addresses actually being set, I cannot independently verify that the 5,000,000/4,500,000 (Ethereum) and 20,000,000/18,000,000 (Linea) caps or the specific fixed $1 oracle addresses match what the description claims. However, there is also no evidence of any mismatch, extra action, or omitted action—the single execute() call is consistent with what a proposal implementing exactly this specification would look like. Given the opacity of the calldata (a generic execute() call rather than fully decoded sub-actions), confidence in this comparison is low, and per instructions this should not be surfaced as a discrepancy or warning. I therefore classify this as consistent with low confidence, reflecting an inability to fully verify granular details rather than any identified conflict between the prose and the decoded action.
Generated by Kvorum
04Actions
- Target
- 0x10fd…56de
- Value
- 0 wei
- Function
- fallback()
- Arguments
{}- Calldata
05Tally
Summed from votes
06Voters
No votes recorded yet.
07Forum
No forum thread is confidently linked to this proposal.
08Similar proposals
- aaveexecutedSet Price Cap Adapters for Aave V279%
- aaveexecutedMKR and USDtb oracle adjustments79%
- aaveexecutedUpdate USDG Price Feed on Aave V3 Instances77%
- aaveexecutedSet Price Cap Adapters (CAPO)76%
- aaveexecutedPrice feeds operational update74%
- aaveexecutedPrice feeds operational update Pt2 - stETH71%
- aaveexecutedUpdate xSushi price feed on Aave V270%
- aaveexecutedUpdate PriceOracleSentinel70%
- aaveexecutedLBTC and eBTC Price Feeds Update69%
- aaveexecutedPrices operational update. Unify disabled fallback oracles69%