Oracle Price Feeding

BendDAO Oracle Keeper will collect raw price data from various NFT marketplaces and decentralized Oracle.

NFT collection's final prices are calculated by the algorithm developed by the BendDAO team.

The algorithm parameters in details are not transparent to protect our users and ensure the highest level of security.

How Oracle Works

We need to recognize the characteristics of the NFT trading market:

Compared with mainstream ERC20 tokens, the liquidity of the NFT market is insufficient and the price is easy to be manipulated.

Attacks caused by price manipulation:

  • If the floor price rises sharply, the attacker can borrow more funds which greater than NFT collateral value in normal, and never repay the debt to leave lots of bad debt.

  • If the floor price falls sharply, triggering a large number of existing debts to become insolvent and enter the liquidation state, the attacker can take away the user's NFT collateral at a lower price through auction.

For the above situation, we need some special design mechanisms to avoid the above situation.

  • Price collection. The original price data collected from major trading markets needs to be processed and adjusted based on various weights such as trading volume and listing orders.

  • Filtering conditions. When the price fluctuates, some restrictions are imposed on the amplitude. The price will not be updated immediately after exceeding a certain threshold.

  • TWAP algorithm. Based on the time-weighted price update mechanism, the price in the recent period is weighted to calculate the average price, so that the price update is relatively smooth.

Improvements

Every time BendDAO encounters a liquidity crisis, some people will blame the design mechanism of the oracle and also put forward some improvement suggestions. We will continue to listen to the feedback from the community and improve the oracle.

Improvements currently planned:

  • When the price rises or falls exceeds a certain threshold, such as 20%, the oracle will set a flag that the current price is unreliable to the protocol before updating the price according to the algorithm. The protocol will detect the current price flag when borrowing. If the price is unreliable, it will stop new borrowing. Existing debts will not be affected, and users can repay normally. (TBD)

Last updated