• © Goverland Inc. 2026
  • v1.0.8
  • Privacy Policy
  • Terms of Use
OlympusDAOOlympusDAOby0x389b11C4fA4b95bCc252A2B20Bb62310Fbc36746abipup.eth

OIP-196 - Price Feed Resilience

Voting ended 7 days agoSucceeded

OIP-196: Price Feed Resilience

Summary

This proposal upgrades the Olympus PRICE module to PRICE v1.2 in order to improve the resilience of price feeds used by protocol contracts, particularly for OHM.

PRICE v1.2 preserves backwards compatibility with the existing PRICE v1 interface, so downstream policies such as Operator, YieldRepurchaseFacility and EmissionManager do not need to be changed. The upgrade allows assets to be resolved from multiple price feeds using explicit strategies, deviation filtering and strict-mode failure behaviour.

Motivation

The protocol currently relies on a small number of oracle paths when resolving OHM. If a critical feed is stale, misconfigured or reporting incorrectly, automated protocol operations could make buy or sell decisions using an unsupported market price.

This proposal adds independent price sources, deviation-based filtering and fail-closed behaviour so PRICE can tolerate isolated feed failures while rejecting materially divergent prices.

Asset Configuration

USDS

USDS will be priced from:

  • Chainlink USDS-USD
  • Chainlink DAI-USD
  • API3 USDS-USD

Strategy:

  • getAveragePriceExcludingDeviations()
  • 1% deviation threshold from the median
  • Strict mode enabled, requiring at least 2 valid values
  • No moving average

sUSDS

sUSDS will be priced through the ERC4626 submodule, using:

  • the underlying USDS price
  • the sUSDS conversion rate

Strategy:

  • Single derived feed
  • No separate deviation strategy
  • No moving average

wETH

wETH will be priced from:

  • Chainlink ETH-USD
  • RedStone ETH-USD
  • API3 ETH-USD
  • Chainlink-derived ETH-USD via ETH-BTC x BTC-USD

Strategy:

  • getAveragePriceExcludingDeviations()
  • 5% deviation threshold from the median
  • Strict mode enabled, requiring at least 2 valid values
  • No moving average

OHM

OHM will be priced from:

  • Uniswap V3 OHM/WETH TWAP
  • Uniswap V3 OHM/sUSDS TWAP
  • Chainlink-derived OHM-USD via OHM-ETH x ETH-USD

Strategy:

  • getAveragePriceExcludingDeviations()
  • 2% deviation threshold from the median
  • Strict mode enabled, requiring at least 2 valid values
  • 30-day moving average state migrated from the live PRICE v1 module
  • Moving average is stored for backwards-compatible target-price reads, but is not used for OHM spot price resolution

Configuration Parameters

Update Thresholds

Asset Feed Update Threshold
USDS Chainlink USDS-USD 24 hours
USDS Chainlink DAI-USD 24 hours
USDS API3 USDS-USD 25 hours
wETH Chainlink ETH-USD 1 hour
wETH RedStone ETH-USD 24 hours
wETH API3 ETH-USD 25 hours
wETH Chainlink ETH-BTC leg 24 hours
wETH Chainlink BTC-USD leg 1 hour
OHM Chainlink OHM-ETH leg 24 hours
OHM Chainlink ETH-USD leg 1 hour

API3 feeds are consumed through Chainlink-compatible reader proxies. Their heartbeat is 24 hours, while the configured staleness threshold is 25 hours. The extra hour gives a small buffer for heartbeat updates that land late, while still excluding the feed promptly if an update is missed.

API3 feed operation requires a small ongoing payment to keep the reader proxy active and updating. The expected cost is approximately 0.05-0.1 ETH per quarter across the API3 feeds.

Observation Windows

Asset Feed Observation Window
OHM Uniswap V3 OHM/WETH 25 minutes
OHM Uniswap V3 OHM/sUSDS 25 minutes

Oracle Source Selection

This proposal uses API3 for the additional ETH-USD and USDS-USD feeds because API3 reader proxies expose a Chainlink-compatible interface and can be consumed through the existing PRICE feed path.

API3 ETH-USD is already available, and API3 USDS-USD can be used as the third USDS source. Both feeds require a small ongoing operating payment to keep the reader proxy active and updating, expected to be approximately 0.05-0.1 ETH per quarter.

Timelock Behaviour

PRICE configuration is split between immediate setup actions and timelocked maintenance actions.

The following actions are queued through PriceConfigv2 and can only be executed after the configured timelock delay:

  • queueRemoveAsset
  • queueUpdateAsset
  • queueUpgradeSubmodule
  • queueExecOnSubmodule
  • queueTimelockDelay

Queued actions are executable by any address after the delay has elapsed and before expiry. The emergency role can cancel queued actions before execution.

The following actions are not timelocked:

  • addAsset, because adding a new asset does not affect existing live price resolution
  • installSubmodule, because installing a new submodule does not replace an existing live submodule
  • storeObservation and storeObservations, because these are operational moving-average maintenance actions

Rationale

This configuration improves PRICE resilience by:

  • adding independent price sources for USDS and wETH
  • using API3 as an additional non-Chainlink oracle source through the existing Chainlink-compatible feed path
  • using deviation filtering to exclude stale, zero, manipulated or materially divergent feed values
  • keeping strict mode enabled so price resolution fails closed when too few valid values remain
  • adding a third OHM price path through Chainlink OHM-ETH x ETH-USD
  • preserving the existing PRICE v1 interface for downstream policies
  • introducing timelocked controls for material post-deployment PRICE configuration changes

Deployment Process

If this Snapshot vote passes, the upgrade is expected to be executed by DAO multisig batch.

The batch will:

  1. Deploy PRICE v1.2 and the required submodules.
  2. Install the submodules through PriceConfigv2.
  3. Configure USDS, sUSDS, wETH and OHM in the same transaction.
  4. Validate price resolution and Heart cycle behaviour before execution.

PriceConfigv2 is enabled by default so the initial configuration can be applied without a heartbeat downtime window. Future material changes to live PRICE configuration will use the timelock queue.

Vote

A vote For approves the PRICE v1.2 rollout and oracle configuration described above.

A vote Against rejects the rollout.

Off-Chain Vote

Approve OIP-196
1.73M OHM100%
Reject OIP-196
0 OHM0%
Download mobile app to vote

Discussion

OlympusDAOOIP-196 - Price Feed Resilience

Timeline

Jun 11, 2026Proposal created
Jun 11, 2026Proposal vote started
Jun 14, 2026Proposal vote ended
Jun 14, 2026Proposal updated