★ Immutable oracle address
Lista DAO'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 #
YELLOW — F180 critical-CANDIDATE held per T-12 PD-017; flag for T-14 post-launch promotion tracking. ResilientOracle proxy itself is upgradeable (oracle addresses mutable via setOracle() — GREEN). However: (1) BnbOracle.sol and SlisBnbOracle.sol hardcode `address constant public RESILIENT_ORACLE_ADDR = 0xf3afD82A4071f272F403dC176916141f44E6c750` — immutable at adapter level; (2) PythOracle.sol: `IPyth immutable public pyth`; (3) API3Oracle.sol: `public immutable api3Proxy`; (4) Lista Lending markets: per documentation 'Once a market is deployed, its oracle address cannot be modified' — per-market oracle lock-in. Yellow: ResilientOracle wrapper is replaceable but individual adapters and all Lista Lending market oracles are hardcoded/immutable.
Sources #
- DocsLista Lending Oracle Docs — immutable per marketLista Lending oracle docs — 'Once a market is deployed, its oracle address cannot be modified'retrieved 2026-05-12
- Lista DAO SlisBnbOracle.sol — constant RESILIENT_ORACLE_ADDRcontracts/oracle/SlisBnbOracle.sol — address constant public RESILIENT_ORACLE_ADDR = 0xf3afD82A4071f272F403dC176916141f44E6c750retrieved 2026-05-12
- Lista DAO PythOracle.sol — immutable Pythcontracts/oracle/PythOracle.sol — IPyth immutable public pythretrieved 2026-05-12
- Lista DAO ResilientOracle.sol — setOracle() mutablecontracts/oracle/ResilientOracle.sol — setOracle() mutable storage confirms main wrapper is replaceableretrieved 2026-05-12
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 →