# Price Oracle

{% hint style="info" %}
Currently, we use Chainlink Oracle for all active markets on Blueberry Bank
{% endhint %}

Blueberry Lend uses Chainlink Oracle to provide price feeds for each lending market where USD is quoted. Blueberry Lend updates the 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 parameters.

For example, ETH/USD has a 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.

### Oracle Latency

Using Chainlink Oracle helps us to avoid price manipulation within a block, but there are still chances that Chainlink Oracle has a 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 borrowing limit is calculated by global price.

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

### Oracle Fallback

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

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

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

In some cases, we will use custom oracles when an Oracle solution is not supported by Chainlink.

### Price Oracle Address

| Contract            | Address                                    |
| ------------------- | ------------------------------------------ |
| PriceOracleProxyUSD | 0xc29C188E81A0Dede959Beeb1dB181c121f19476D |
| Core Oracle         | 0xdfe469ACe05C3d0D4461439e6cF5d0f46F33Ec56 |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://v1.docs.blueberry.garden/lending-protocol/price-oracle.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
