defirisk.co
rubric v1.7.0

Immutable oracle address

Dolomite's assessment for RD-F-180 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.

Evidence summary #

[★ CRITICAL-CANDIDATE per PD-017 — evaluated; NOT counted in 19-star total; flagged for orchestrator/T-14 tracking] Oracle addresses are NOT immutable and ARE admin-replaceable. AdminImpl.sol exposes ownerSetPriceOracle(marketId, newOracle) allowing the PartiallyDelayedMultiSig admin (via 1-day timelock) to replace the oracle for any market. ChainlinkPriceOracleV1.insertOrUpdateOracleToken() allows owner to update individual Chainlink aggregator addresses per token. Oracle replacement is NOT in the timelock-bypass list per docs.dolomite.io/admin-privileges — subject to 1-day delay. Oracle addresses are mutable by admin. F180 green: not immutable, admin-replaceable wrapper exists.

Sources #

  • Docs
    Admin Privileges — Dolomitedocs.dolomite.io/admin-privileges — timelock bypass list (4 functions) does not include ownerSetPriceOracle; oracle replacement subject to 1-day delayretrieved 2026-05-16
  • GitHub
    AdminImpl.sol — ownerSetPriceOracle functiondolomite-exchange/dolomite-margin/blob/master/contracts/protocol/impl/AdminImpl.sol — ownerSetPriceOracle(uint256 marketId, IPriceOracle priceOracle) confirmed, validates non-zero returnretrieved 2026-05-16
  • GitHub
    ChainlinkPriceOracleV1.sol — insertOrUpdateOracleTokendolomite-exchange/dolomite-margin/blob/master/contracts/external/oracles/ChainlinkPriceOracleV1.sol — insertOrUpdateOracleToken() confirmed owner-restricted aggregator update functionretrieved 2026-05-16

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 →

rubric_version v1.7.0 protocol dolomite factor RD-F-180 score green collected_at 2026-05-16 11:12:56