★ Immutable oracle address
Usual (USD0 / bUSD0 / USUAL)'s assessment for RD-F-180 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
ClassicalOracle is a TransparentUpgradeableProxy — oracle source addresses are stored in upgradeable storage via initializeTokenOracle mapping and ARE admin-replaceable. The ★ red criterion for F180 is the immutable-address pattern (address cannot be swapped without full upgrade). Usual's ClassicalOracle passes this test — address IS replaceable, so the core F180 failure mode (lending protocol cannot reprice post-depeg) is avoided. YELLOW because: (1) oracle addresses ARE replaceable (good), but (2) the missing live staleness guard (F059 red) means even correct oracle addresses can pass through stale data undetected; (3) no timelock on oracle address changes (admin can instantly re-point to a different feed). Not red because replaceability criterion is met.
Sources #
- EtherscanClassicalOracle Proxy — EtherscanClassicalOracle proxy at 0xb97e163cE6A8296F36112b042891CFe1E23C35BF — TransparentUpgradeableProxy confirmed; oracle addresses in mutable storage, admin-replaceableretrieved 2026-05-17
- ClassicalOracle | Usual Tech Docstech.usual.money ClassicalOracle: 'initializeTokenOracle(address token, address dataSource, uint64 timeout, bool isStablecoin)' — callable by DEFAULT_ADMIN_ROLE, meaning oracle addresses are updatableretrieved 2026-05-17
Methodology #
Determine whether any collateral oracle address is marked `immutable` in protocol config with no admin-replaceable adapter wrapper, preventing the protocol from repricing when the upstream asset depegs.
See the full factor methodology and distribution across all protocols →