LogoLogo
  • Getting Started
    • Overview
    • Whitepaper V4
    • FAQ
  • What's New?
    • Isolated Pools
    • Reward Distributor
    • Peg Stability Module
    • Automatic Income Allocation
    • Token Converter
    • Venus Prime
    • Stable Rate Borrowing
  • Governance
    • VIPs
    • Tokenomics
    • Community Forum
  • Risk
    • Resilient Price Oracle
    • Interest Rate Model
    • Risk Fund and Shortfall Handling
    • Risk Management
  • Tokens
    • XVS
    • VAI
      • VAIController
      • VAIUnitroller
  • Guides
    • Venus interface
    • Supplying and borrowing
    • Liquidations
    • Governance
      • Submitting a VIP
      • Delegating & Voting
    • Vaults
    • Protocol Math
    • XVS Bridge
    • Borrowing VAI
    • Gasless Transactions on zkSync
  • Technical reference
    • Contracts Overview
    • Technical articles
      • Automatic income allocation
      • Capped Oracles
      • Contributing
      • Diamond Comptroller in the Core pool
      • Native Token Gateway
      • Omnichain Governance
      • Prime tokens
      • Shortfall and auctions
      • Token Converters
      • Two Kinks Interest Rate Curve
      • XVS Bridge
    • Core Pool
      • Comptroller
        • ComptrollerLens
        • Diamond
          • Diamond
          • DiamondConsolidated
          • Facets
            • MarketFacet
            • PolicyFacet
            • RewardFacet
            • SetterFacet
      • VToken
      • Prime
        • Prime token
        • Prime liquidity provider
        • Prime storage
      • Vaults
        • XVS
          • XVSVault
          • XVSVaultProxy
          • XVSStore
          • XVSVaultTreasury
        • VAI
          • VAIVault
          • VAIVaultProxy
      • InterestRateModels
        • JumpModel
        • TwoKinksInterestRateModel
        • WhitePaperModel
        • InterestRateModelLens
      • Liquidator
      • VTreasury
      • VenusLens
      • PSM
      • VBNBAdmin
    • Isolated Pools
      • Comptroller
        • Comptroller
        • ComptrollerStorage
      • VToken
        • VToken
        • VTokenInterfaces
      • NativeTokenGateway
      • Pool Registry
        • PoolRegistry
        • PoolRegistryInterface
      • RewardsDistributor
      • PoolLens
      • Interest Rate Models
        • InterestRateModel
        • BaseJumpRateModelV2
        • JumpRateModelV2
        • TwoKinksInterestRateModel
        • WhitePaperInterestRateModel
      • Risk Fund and Shortfall
        • Shortfall
        • ProtocolShareReserve
        • RiskFund
        • RiskFundStorage
      • Utility
        • MaxLoopsLimitHelper
        • ErrorReporter
        • ExponentialNoError
    • Oracle
      • ResilientOracle
      • BoundValidator
      • Sources
        • ChainlinkOracle
        • SequencerChainlinkOracle
        • BinanceOracle
      • Correlated token oracles
        • AnkrBNBOracle
        • CorrelatedTokenOracle
        • BNBxOracle
        • OneJumpOracle
        • PendleOracle
        • SFraxOracle
        • SFrxETHOracle
        • SlisBNBOracle
        • StkBNBOracle
        • WBETHOracle
        • WeETHOracle
        • WstETHOracle
    • Governance
      • AccessControlManager
      • GovernorBravoDelegate
      • AccessControlledV5
      • GovernorBravoDelegator
      • Timelock
      • GovernorBravoInterfaces
      • AccessControlledV8
      • BaseOmnichainControllerSrc
      • BaseOmnichainControllerDest
      • OmnichainProposalSender
      • OmnichainGovernanceExecutor
      • OmnichainExecutorOwner
    • Token Converter
      • AbstractTokenConverter
      • RiskFundConverter
      • SingleTokenConverter
      • ConverterNetwork
    • XVS Bridge
      • BaseXVSProxyOFT
      • XVSProxyOFTSrc
      • XVSProxyOFTDest
      • XVSBridgeAdmin
      • XVS
      • TokenController
  • Deployed Contracts
    • Markets
    • Funds
    • Oracles
    • Governance
    • XVS Omnichain
    • Token Converters
  • Services
    • API
    • Subgraphs
  • Links
    • Security & Audits
    • Resources
    • Community Resources
    • Brand kit
Powered by GitBook
On this page
  • Overview
  • Key Features
  • Safety Measures
  • Correlated Token Oracles
  • Current configuration
  • Further Reading
Export as PDF
  1. Risk

Resilient Price Oracle

Last updated 12 days ago

Overview

In its previous version, Venus was fully reliant on the Chainlink price oracle for fetching prices. This dependence, while generally reliable, created a single point of failure. An erroneous or stale price could, without a secondary mechanism for validation, pose threats such as unwarranted liquidations or inflated borrowing.

In light of these risks, Venus V4 introduces the Resilient Price Oracle, a more robust system capable of pulling data from multiple sources for cross-validation. The Resilient Oracle is equipped with an algorithm to verify prices between two or more sources, providing a safeguard in cases where the primary source proves unreliable or fails.

Furthermore, the improved oracle infrastructure supports the integration of new price oracles in real-time and permits the enabling and disabling of price oracles per token.

Key Features

Resilient Price Feeds

The Resilient Price Feeds replace the single source price provider used in the Comptroller contract with a more robust and reliable solution. This new component not only fetches asset prices from various on-chain sources but also includes a fallback mechanism to protect the protocol from oracle failures. Presently, this feature incorporates Chainlink, RedStone, Pyth Network and Binance oracles, with the possibility of adding more in the future.

Governance Configurations

The Resilient Price Feeds system can be configured by the Venus governance via Venus Improvement Proposals (VIPs). These configurations include pause and resume functionalities for the oracle, price feed configurations, and fixed price settings, among others.

Safety Measures

In implementing the Resilient Price Oracle, several safety measures have been adopted to ensure the security and continuity of the Venus Protocol:

  • Price Continuity: Asset prices pre and post upgrade were validated in a simulated environment to ensure consistency.

  • Testnet Deployment: The oracles have been deployed and tested in the Venus Protocol testnet environment.

  • Auditing: The code has been audited by OpenZeppelin, Peckshield, Certik, and Hacken.

Correlated Token Oracles

For correlated tokens, like Liquid Staked Tokens (LST), best practice suggests oracles quote first smart contracts to get the exchange rate between the correlated assets, and then multiply that by the USD market price of the second token to complete the calculation.

In Venus we use dedicated oracles for each LST asset in order to calculate the price as follows:

  • convert the LST to the underlying tokens (using the exchange rate provided by the LST contracts)

  • convert the underlying token calculated in the previous step to USD, using a “traditional” oracle based on market price

The current list of correlated token oracles in Venus is:

  • PendleOracle. It returns the USD price of the PT Pendle token, converting on-chain from the PT token to the underlying token using a Pendle market contract.

Assumption on Liquid Staked Tokens

WeETHOracle and WstETHOracle assume a 1:1 price ratio between the LST and the underlying asset (e.g. 1 ETH = 1 stETH). The primary risks associated with this approach involve smart contract vulnerabilities and counterparty risks that could impact the redemption processes of the LSTs. In cases of substantial counterparty risk, particularly if the underlying tokens are not redeemable against the LSTs, the direct smart contract pricing might become unreliable. Here's our plan to mitigate such situations:

  • We will deploy two on-chain oracles for each LST token:

    • The first oracle will return the price based on the assumption of a 1:1 ratio between the LST token and the underlying asset.

    • The second oracle will return the price based on a secondary market feed (using Chainlink, for instance).

  • By default, the ResilientOracle will be configured to use only the oracle assuming a 1:1 ratio between the LST asset and the underlying, serving as the primary oracle.

  • The second oracle, which derives price from the market price feed without assuming a 1:1 ratio, will not be initially configured in our ResilientOracle.

  • We have implemented an off-chain monitoring system to track the prices returned by both oracles. In the event of a significant deviation over an extended period, the situation will be reviewed. It will be determined whether to switch the primary oracle from the one assuming a 1:1 ratio to the one that does not, or whether to temporarily include the latter as a pivot oracle in the ResilientOracle configuration.

Current configuration

BNB chain

Pool
Market
MAIN oracle
PIVOT oracle
FALLBACK oracle
Notes

Core

AAVE

-

-

Core

ADA

-

-

Core

BCH

-

-

Core

BETH

-

-

Core

BNB

Upper bound: 1.01. Lower bound: 0.99

Core

BTCB

Upper bound: 1.01. Lower bound: 0.99

Core

BUSD

-

-

Core

CAKE

-

-

Core

DAI

-

-

Core

DOGE

-

-

Core

DOT

-

-

Core

ETH

-

-

Core

FDUSD

-

-

Core

FIL

-

-

Core

LINK

-

-

Core

lisUSD

-

-

Core

LTC

-

-

Core

LUNA

-

-

Core

MATIC

-

-

Core

PT-sUSDE-26JUN2025

-

-

Core

SOL

-

-

Core

SolvBTC

-

-

Core

sUSDe

Upper bound: 1.01. Lower bound: 0.99

Core

SXP

-

-

Core

THE

-

-

-

Core

TRX

-

Upper bound: 1.01. Lower bound: 0.99

Core

TRXOLD

-

Upper bound: 1.01. Lower bound: 0.99

Core

TUSD

-

-

Core

TUSDOLD

-

-

Core

TWT

-

-

Core

UNI

-

-

Core

USDC

-

-

Core

USDe

Upper bound: 1.01. Lower bound: 0.99

Core

USDT

-

-

Core

USD1

Core

UST

-

-

Core

VAI

-

-

Core

WBETH

-

-

Core

XRP

-

-

Core

XVS

-

-

Stablecoins

lisUSD

-

-

Stablecoins

USDD

-

-

Stablecoins

USDT

-

-

Stablecoins

EURA

-

-

DeFi

BSW

-

-

DeFi

ALPACA

-

-

DeFi

USDT

-

-

DeFi

USDD

-

-

DeFi

ANKR

-

-

DeFi

ankrBNB

-

-

DeFi

TWT

-

-

DeFi

PLANET

-

-

GameFi

RACA

-

-

GameFi

FLOKI

-

-

GameFi

USDD

-

-

GameFi

USDT

-

-

Liquid Staked BNB

ankrBNB

-

Liquid Staked BNB

asBNB

-

-

Liquid Staked BNB

BNBx

-

-

Liquid Staked BNB

PT-clisBNB-24APR2025

-

Liquid Staked BNB

stkBNB

-

Liquid Staked BNB

slisBNB

-

-

Liquid Staked BNB

WBNB

-

-

Meme

BabyDoge

-

-

Meme

USDT

-

-

Tron

BTT

-

-

Tron

TRX

-

-

Tron

WIN

-

-

Tron

USDD

-

-

Tron

USDT

-

-

Liquid Staked ETH

ETH

-

-

Liquid Staked ETH

weETH

Upper bound: 1.01. Lower bound: 0.99

Liquid Staked ETH

wstETH

Upper bound: 1.01. Lower bound: 0.99

BTC

BTCB

Upper bound: 1.01. Lower bound: 0.99

BTC

PT-SolvBTC.BBN-27MAR2025

-

-

Ethereum

Pool
Market
MAIN oracle
PIVOT oracle
FALLBACK oracle
Notes

Core

crvUSD

-

-

Core

DAI

-

-

Core

TUSD

-

-

Core

USDC

-

-

Core

USDT

-

-

Core

WBTC

-

-

Core

WETH

-

-

Core

FRAX

-

-

Core

LBTC

-

-

Core

EIGEN

-

-

Core

sFRAX

-

-

Core

eBTC

-

-

Core

USDS

-

-

Core

sUSDS

-

-

Core

BAL

-

-

Core

yvUSDC-1

-

-

Core

yvUSDS-1

-

-

Core

yvUSDT-1

-

-

Core

yvWETH-1

-

-

Curve

crvUSD

-

-

Curve

CRV

-

-

Ethena

PT-sUSDE-27MAR2025

-

-

Ethena

PT-USDe-27MAR2025

-

-

Ethena

sUSDe

-

-

Ethena

USDC

-

-

Ethena

USDe

Upper bound: 1.01. Lower bound: 0.99

Liquid Staked ETH

ezETH

Upper bound: 1.01. Lower bound: 0.99

Liquid Staked ETH

PTweETH-26DEC2024

-

-

Liquid Staked ETH

pufETH

-

-

Liquid Staked ETH

rsETH

Upper bound: 1.01. Lower bound: 0.99

Liquid Staked ETH

sfrxETH

-

-

Liquid Staked ETH

WETH

-

-

Liquid Staked ETH

wstETH

-

-

Assume 1:1 for ETH:stETH

Liquid Staked ETH

weETH

-

-

Assume 1:1 for ETH:eETH

Liquid Staked ETH

weETHs

-

-

opBNB mainnet

Pool
Market
MAIN oracle
PIVOT oracle
FALLBACK oracle
Notes

Core

BTCB

-

-

Core

ETH

-

-

Core

FDUSD

-

-

Core

USDT

-

-

Core

WBNB

-

-

Arbitrum One

Pool
Market
MAIN oracle
PIVOT oracle
FALLBACK oracle
Notes

Core

WBTC

-

-

Core

WETH

-

-

Core

USDC

-

-

Core

USDT

-

-

Core

gmWETH-USDC

-

-

Core

gmBTC-USDC

-

-

Core

ARB

-

-

Liquid Staked ETH

weETH

-

-

Liquid Staked ETH

wstETH

-

-

Liquid Staked ETH

WETH

-

-

ZKsync Mainnet

Pool
Market
MAIN oracle
PIVOT oracle
FALLBACK oracle
Notes

Core

WBTC

-

-

Core

WETH

-

-

Core

USDC

-

-

Core

USDC_E

-

-

Core

USDT

-

-

Core

ZK

Upper bound: 1.01. Lower bound: 0.99

Core

wstETH

-

-

Core

wUSDM

-

-

Core

zkETH

-

-

Assume 1:1 for WETH:rzkETH

Optimism Mainnet

Pool
Market
MAIN oracle
PIVOT oracle
FALLBACK oracle
Notes

Core

WBTC

-

-

Core

WETH

-

-

Core

USDC

-

-

Core

USDT

-

-

Core

OP

-

-

Base Mainnet

Pool
Market
MAIN oracle
PIVOT oracle
FALLBACK oracle
Notes

Core

cbBTC

-

-

Core

WETH

-

-

Core

USDC

-

-

Core

wsuperOETHb

-

-

Core

wstETH

-

-

Unichain Mainnet

Pool
Market
MAIN oracle
PIVOT oracle
FALLBACK oracle
Notes

Core

WETH

-

-

Core

USDC

-

-

Core

UNI

-

-

Further Reading

For more detailed information, refer to the following resources:

Audit reports

References

AnkrBNBOracle. It returns the USD price of the token, converting on-chain from ankrBNB to BNB using the exchange rate from the ankrBNB contract.

BNBxOracle. It returns the USD price of the token, converting on-chain from BNBx to BNB using the exchange rate from the contract.

eBTCAccountantOracle (instance of EtherfiAccountantOracle). It returns the USD price of the token, converting on-chain from eBTC to WBTC using the exchange rate from the contract.

SFraxOracle. It returns the USD price of the token, converting on-chain from sFRAX to FRAX using the exchange rate from the sFRAX contract.

SlisBNBOracle. It returns the USD price of the token, converting on-chain from slisBNB to BNB using the exchange rate from the contract.

AsBNBOracle. It returns the USD price of the token, converting on-chain from asBNB to slisBNB using the exchange rate from the contract.

StkBNBOracle. It returns the USD price of the token, converting on-chain from stkBNB to BNB using the exchange rate from the contract.

WBETHOracle. It returns the USD price of the token, converting on-chain from WBETH to BNB using the exchange rate from the WBETH contract.

WeETHOracle. It returns the USD price of the token, converting on-chain from weETH to eETH using the exchange rate from the contract, and assumming 1 eETH = 1 ETH.

WeETHsOracle (instance of WeETHAccountantOracle). It returns the USD price of the token, converting on-chain from weETHs to WETH using the exchange rate from the contract.

WstETHOracle. It returns the USD price of the token, converting on-chain from wstETH to stETH using the exchange rate from the contract, and assumming 1 stETH = 1 ETH.

ankrBNB
BNBx
stake manager
eBTC
Accountant
sFRAX
slisBNB
stake manager
asBNB
asBNB minter
stkBNB
stake pool
WBETH
weETH
liquidity pool
weETHs
Accountant
wstETH
stETH
Repository
Community post about Venus V4, introducing Resilient Price Feeds
Venus Stars blog post about Binance Oracle
Chainlink
Chainlink
Chainlink
Chainlink
RedStone
Chainlink
Chainlink
RedStone
Chainlink
Chainlink
Chainlink
Price fixed to $1
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Binance
Chainlink
Chainlink
Chainlink
PendleOracle-PT-sUSDe-26JUN2025
Chainlink
RedStone
sUSDeOneJumpRedstoneOracle
sUSDeOneJumpChainlinkOracle
sUSDeOneJumpChainlinkOracle
Chainlink
RedStone
Chainlink
RedStone
Chainlink
RedStone
Chainlink
Chainlink
Binance
Chainlink
Chainlink
RedStone
Chainlink
Chainlink
Chainlink
RedStone
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Binance
Binance
Chainlink
Binance
Chainlink
Chainlink
Chainlink
Binance
Binance
AnkrBNBOracle
Binance
Binance
Binance
Binance
Binance
Chainlink
AnkrBNBOracle
AsBNBOracle
BNBxOracle
PendleOracle-PT-clisBNB-25APR2025
StkBNBOracle
SlisBNBOracle
Chainlink
Binance
Chainlink
Binance
Chainlink
Chainlink
Binance
Chainlink
Chainlink
weETHOneJumpRedstoneOracle
weETHOneJumpChainlinkOracle
weETHOneJumpChainlinkOracle
wstETHOneJumpChainlinkOracle
wstETHOneJumpRedstoneOracle
wstETHOneJumpRedstoneOracle
RedStone
Chainlink
Chainlink
PendleOracle-PT-SolvBTC.BBN-27MAR2025
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
Chainlink
LBTCOneJumpRedStoneOracle
Chainlink
SFraxOracle
eBTCAccountantOracle
Chainlink
sUSDS-ERC4646Oracle
Chainlink
yvUSDC-1-ERC4646Oracle
yvUSDS-1-ERC4646Oracle
yvUSDT-1-ERC4646Oracle
yvWETH-1-ERC4646Oracle
Chainlink
Chainlink
PendleOracle-PT-sUSDe-27MAR2025
PendleOracle-PT-USDe-27MAR2025
sUSDe-ERC4626Oracle
Chainlink
RedStone
Chainlink
Chainlink
ezETHOneJumpRedstoneOracle
ezETHOneJumpChainlinkOracle
ezETHOneJumpChainlinkOracle
PendleOracle-PT-weETH-26DEC2024
pufETHOneJumpRedstoneOracle
rsETHOneJumpRedstoneOracle
rsETHOneJumpChainlinkOracle
rsETHOneJumpChainlinkOracle
SFrxETHOracle
Chainlink
WstETHOracle_Equivalence
WeETHOracle_Equivalence
WeETHAccountantOracle
Binance
Binance
Binance
Binance
Binance
SequencerChainlinkOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
weETHOneJumpChainlinkOracle
wstETHOneJumpChainlinkOracle
SequencerChainlinkOracle
ChainlinkOracle
ChainlinkOracle
ChainlinkOracle
ChainlinkOracle
ChainlinkOracle
RedStoneOracle
ChainlinkOracle
ChainlinkOracle
wstETHOneJumpChainlinkOracle
wUSDM-ERC4626Oracle
ZkETHOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
SequencerChainlinkOracle
ChainlinkOracle
ChainlinkOracle
ChainlinkOracle
wsuperOETHb-ERC4626Oracle
wstETHOneJumpChainlinkOracle
RedStone
RedStone
RedStone
Resilient Price Oracle
Resilient Price Oracle upgrade
WstETH oracle
Correlated token oracles