Refer a fren and earn rewards!

Yes, take me there!

Logo

-

Update the INV Price Feed - 2

Queued
#334 - mills ERA

Locked until Nov 25th 2025, 6:02 am (in 16 hours)

Details

avatar

HarryGasWallet

Update INV Price Feed to Dynamic-Fee INV/WETH Curve Oracle

Forum Post: https://forum.inverse.finance/t/update-the-inv-price-feed-2/628

Summary

This proposal updates the INV/USD price feed used by FiRM and Frontier to:

  1. Migrate from the current INV/WETH Curve pool to the new higher-fee INV/WETH Curve pool; and
  2. Replace the existing ChainlinkCurve2CoinsFeed with a new DynamicFeeCurveFeed that explicitly accounts for the Curve pool’s trading fee.

The goal is for FiRM and Frontier to use a price that reflects INV’s net-of-fee executable value in our main liquidity pool.

Background

  • INV is currently priced via a Chainlink + Curve oracle:
    • Chainlink WETH/USD price, combined with
    • Curve INV/WETH twocrypto-ng EMA (price_oracle()).
  • The DAO is migrating INV liquidity and routing to a new INV/WETH Curve pool configured with a higher trading fee.
  • With the higher fee, the mid-price from the pool (EMA) overstates the value a liquidator can actually realize after paying fees.

To keep the oracle aligned with where INV trades and make pricing slightly more conservative, we introduce a dynamic-fee-aware variant.

DynamicFeeCurveFeed Overview

The new oracle contract, DynamicFeeCurveFeed, keeps the same basic structure:

  • Uses IChainlinkBasePriceFeed for WETH → USD (18 decimals).
  • Uses the new INV/WETH Curve pool for:
    • price_oracle() (EMA of the INV/WETH rate), and
    • fee() (dynamic pool fee, 1e10 precision).
  • Returns INV/USD with 18 decimals and description INV / USD.

Price calculation (simplified):

  • Get pairedTokenToUsdPrice (WETH/USD) from Chainlink.
  • Get crvOraclePrice from curvePool.price_oracle(), which is WETH/INV
  • Compute INV/USD
  • Fetch fee = curvePool.fee(), clamp it to maxFee (initially 2%, equal to the pools maximum fee).
  • Apply the discount: usdPrice = usdPrice * (1 - fee).

This makes the oracle reflect a post-fee price, bounded by a governance-controlled maxFee (0–100%).

The contract also includes a simple gov / pendingGov pattern and a setMaxFee(int _maxFee) function restricted to gov.

Rationale

  • We are already relying on the INV/WETH Curve pool as the main liquidity venue for INV.
  • With the new pool’s higher fee, using a pure mid-price (price_oracle()) overestimates the value available to liquidators and arbitrageurs.
  • Applying the Curve fee in the oracle:
    • Keeps assumptions closer to real execution, and
    • Introduces a small, bounded conservative bias that improves risk management for FiRM and Frontier.

On-Chain Actions

  • Update FiRM INV Feed
  • Update Frontier INV Feed
  • Update sINV price feed

Actions

Action 1
«
Set price feed
»
FiRMOracle
.setFeed(
INV,0x4C87...EECB,

18

)

Action 2
«
Set INV's Frontier Market Price Feed Source to 0x4C87...EECB with a

18

decimals Underlying
»

)

Action 3

Proof of Reviews

Members allowed to make Drafts can sign the fact that they reviewed the Draft Proposal

Loading...

For Votes

5 voters

30.91k votes

avatar

CryptoHarry

29.41k

avatar

0x95a0...42de

913.00

avatar

0x0e0f...c215

213.38

avatar

0x412c...6c2c

207.09

avatar

0xe5db...b225

170.00

Against Votes

0 voters

0.00 votes

Subscribe to Our Newsletter

Join thousands of subscribers in receiving weekly updates about Inverse products, partnerships, and early-bird news shared only with subscribers!

Products

sDOLADOLAINVFiRMStable Yields

Social