Price Oracle

Currently we use Chainlink oracle for all active markets on Iron Bank

Iron Bank uses Chainlink oracle to provide price feed for each lending market where USD is quote. Iron Bank updates token price whenever Chainlink has a new price written on-chain, and the update mechanism also follows Chainlink's trigger parameter. Each market has its own parameter.

For example, ETH/USD has 0.5% Deviation Threshold and 3,600 seconds Heartbeats, which means a new trusted price is written when Chainlink's off-chain data moves more than the 0.5% deviation threshold or 3,600 seconds have passed since the last price was written on-chain.

For more information, visit Chainlink Data Feeds.

Oracle Latency

Using Chainlink oracle helps us to avoid price manipulation within a block, but there are still chances that Chainlink oracle has price difference from the global price, depending on trigger parameters. In some cases, it leads users to borrow more than they are allowed, if the borrow limit is calculated by global price.

However, Iron Bank is an over-collateral lending protocol that users can borrow assets no more than a certain ratio of collateral value. This is defined by Collateral Factor of each market. Thus, while we keep monitoring significant price difference between Chainlink oracle and global price, such oracle latency has little effect on the protocol.

Oracle Fallback

We use Chainlink oracle for all active markets on Iron Bank by default.

While we believe in Chainlink providing accurate token price, it is still important to monitor price difference between our oracle and global price. If we were to find Chainlink oracle price significantly different from global price, we could toggle protocol price oracle from using Chainlink to other on-chain alternatives with the Guardian.

Only when Chainlink provides stale price will we toggle oracle by Guardian.

Price Feed Alternative

There are some tokens that we cannot find the corresponding price feeds on Chainlink. Therefore, we use price feed alternative instead.

For WBTC, we use the combination of two price feeds WBTC/BTC and BTC/USD, to get WBTC price in USD quote as the source.

  • WBTC/BTC: 0xfdFD9C85aD200c506Cf9e21F1FD8dd01932FBB23

  • BTC/USD: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c

For the following stable coins, we use fiat price instead:

  • EURS

  • sEUR

  • EUR

  • KRW

  • JPY

  • AUD

  • GBP

  • CHF

  • ZAR

Price Oracle Address

ContractAddress

PriceOracleProxyIB

Last updated