To keep Bucket Protocol from malicious users. Bucket Protocol has designed a firewall for oracles.
Our system has integrated three different oracles to provide highly accurate price feeds for our users. These oracles include SwitchBoard, Pyth, and Supra, which will be used as data feed sources.
Our system is designed to handle adversarial situations, even if one of the oracles fails. To ensure accuracy, our system evaluates each oracle's returned price to determine if it is too stale and compares the price disparities between each oracle. The system then takes the average of the prices provided by oracles to provide accurate price feeds with minimal governance interaction at all times. We work hard to ensure that the information displayed on our platform is always accurate, up-to-date, and reliable for our users.

Summary of the Bucket Oracle Logic

With the live price feedback and the last updated timestamp of each oracle, there are 3 assigned statuses:
  • Normal: The last updated timestamp is no older than y seconds and the price discrepancies between different oracles are less than w%.
  • Stale: The duration passed since the last updated timestamp is greater than y seconds
The price calculation is as follows:
  • If the oracles are "Normal", return the average price of the oracles.
  • Abort execution if the two of the oracles are "Stale".
It's unlikely that two oracles fail at the same time. In the extreme situation, if both oracles fail, any vault operations that involve fetching the live price feed will be paused.

Oracle Parameters

Default parameters:
  • Staleness threshold = 500 seconds
  • The threshold for price discrepancies between different oracles = 1%
The set of parameters is configurable for each collateral type.