# Oracles

ReactorFusion utilizes the decentralized Chainlink oracle solutions, which provide up-to-date token price data to smart contracts on the zkSyncEra Mainnet.

{% hint style="info" %} <mark style="color:blue;">**Responsibilities of an oracle**</mark>

* Updates, stores, and distributes up-to-date token prices relevant to the system.
* Disables exchange functionality if prices are not fresh.
* Provides up-to-date token prices for liquidation functionality.
  {% endhint %}

### How Does ReactorFusion Utilize Oracles?

ReactorFusion utilizes a singular `SimpleOracle` contract to interact with Chainlink oracle.

### Oracle Contracts

At ReactorFusion, the on-chain manifestation of the oracle is the `SimpleOracle` contract, which interacts with the Chainlink contract and fetches prices. The primary user of these prices is the `Comptroller`  contract, which needs them to calculate collateral status when performing liquidations.

### Constituent Contracts

| Contract       | Description                                                                          |
| -------------- | ------------------------------------------------------------------------------------ |
| `SimpleOracle` | The oracle is responsible for fetching and processing Chainlink oracle data.         |
| `Comptroller`  | The Comptroller reads price data from SimpleOracle and calculates borrowable amounts |
