This proposal points six oracle consumers at the CheckedOracles deployed on 17 September. A CheckedOracle is a managed price oracle that accepts a pushed price only if it agrees with the asset's own on-chain pool day-EMA within a set band, and otherwise keeps its previous value. The prices are pushed automatically by the Wormhole oracle receivers, so this also ends the recurring manual price-update referenda for these assets.
Money market price sources: apyUSD and PRIME.
Stablepool peg sources: 2-Pool-PRIME (143), 2-Pool-apyUSD (146), the GIGAETH pool (4200, wstETH leg) and the GIGASOL pool (90001, jitoSOL leg).
The current oracles for these assets hold a fixed value that only governance can change. That has two costs: prices only track the market when a referendum passes, and there is no check on what gets written.
Both matter. On 4 September the PRIME feed began reporting about 1.00 USD against a true value near 1.06, and kept doing so for several days. Wired in directly, that would have made a large share of PRIME borrowing positions appear liquidatable at a price the market never traded at. A CheckedOracle rejects such a value outright: the price simply holds until the feed agrees with the pool again.
The check also works in the other direction. If a feed runs ahead of where an asset actually trades, the pool peg is not dragged along with it, so liquidity is never concentrated around a price the market has not accepted.
Values below are current as of writing; the exact figures at enactment will differ slightly because three of the four oracles update continuously.
No position becomes liquidatable as a result of these changes.
Worth noting for transparency: the apyUSD CheckedOracle is currently rejecting its incoming feed, because the vault's reported value sits about 3.5% above where apyUSD trades in the pool, outside the 1% band. Its price therefore stays where it is until the two converge. That is the intended behaviour rather than a fault, and it is why the apyUSD money market price does not move.
Bands were set from measured behaviour: over three weeks of live pushes, wstETH and jitoSOL stayed within 0.19% and 0.29% of their pool EMAs, giving several times the headroom needed. PRIME and apyUSD are quoted against HOLLAR pools, so their bands also absorb HOLLAR's own movement against the dollar.
Each oracle is owned by the Aave manager, so governance can adjust the band, change the check feed, or write a price directly if a check feed ever fails.
Contract source: https://github.com/galacticcouncil/money-market/pull/55
Executed on a mainnet fork and then on the 0.lark testnet fork, where it has been running since 18 September. On lark: both money market sources and all four pegs updated as expected, trading on all four pools continued normally, the pegs have tracked their rate limits exactly over more than 9,000 blocks, and no position has been liquidated or brought below a health factor of 1.
Preimage hash: 0xdfb6fc98eea87fce9c3717c24d2d0c498b3131be5a6ff910daf875340a528f21
CheckedOracles are a new kind of price machine. They only accept a new price if it matches the real market. If it doesn't match, they keep the old price.