> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monad.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Oracles

Oracles make off-chain data accessible on chain.

## Definitions

| Term                             | Description                                                          |
| -------------------------------- | -------------------------------------------------------------------- |
| Push oracle                      | Provider regularly pushes price data to the oracle contract on chain |
| Pull (on-demand) oracle          | User triggers price data update while calling a smart contract       |
| Custom oracle                    | A custom calculator                                                  |
| VRF (Verifiable Random Function) | Provides random numbers on chain                                     |

## Provider Summary

<Tabs>
  <Tab title="Mainnet">
    <div class="mintlify-table-wrapper">
      <table class="mintlify-table">
        <thead>
          <tr>
            <th>Provider</th>
            <th>Status</th>
            <th>Docs</th>
            <th>Contract addresses</th>
            <th>Live data</th>
            <th>Support notes</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>[Chainlink](https://chain.link/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.chain.link/)</td>
            <td>See [contract addresses](https://github.com/monad-crypto/protocols/blob/main/mainnet/chainlink.jsonc)</td>
            <td>[Live data](https://data.chain.link/streams)</td>

            <td>
              * Push oracle ([Price Feeds](https://docs.chain.link/data-feeds/price-feeds))
              * Pull oracle ([Data Streams](https://docs.chain.link/data-streams))
            </td>
          </tr>

          <tr>
            <td>[Chronicle](https://chroniclelabs.org/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.chroniclelabs.org/)</td>
            <td>See [contract addresses](https://github.com/monad-crypto/protocols/blob/main/mainnet/chronicle.jsonc)</td>

            <td />

            <td>Push oracle; custom oracles</td>
          </tr>

          <tr>
            <td>[eOracle](https://eo.app/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.eo.app/docs)</td>

            <td />

            <td>[Dashboard](https://data.eo.app/)</td>
            <td>Push oracle</td>
          </tr>

          {/* Pyth */}

          <tr>
            <td>[Pyth](https://www.pyth.network/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.pyth.network/)</td>
            <td>See [contract addresses](https://github.com/monad-crypto/protocols/blob/main/mainnet/pyth.jsonc)</td>
            <td>[Live data](https://www.pyth.network/price-feeds)</td>
            <td>[Pull oracle](https://docs.pyth.network/price-feeds/pull-updates);<br />
            [VRF](https://docs.pyth.network/entropy)</td>
          </tr>

          <tr>
            <td>[Redstone](https://www.redstone.finance/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.redstone.finance/)</td>
            <td>See [contract addresses](https://github.com/monad-crypto/protocols/blob/main/mainnet/redstone.jsonc)</td>
            <td>[Live data](https://app.redstone.finance/app/tokens/)</td>
            <td>[Push oracle](https://app.redstone.finance/app/feeds/?networks=10143);<br />
            [pull oracle](https://app.redstone.finance/app/pull-model/redstone-primary-prod)</td>
          </tr>

          <tr>
            <td>[Stork](https://stork.network/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.stork.network/)</td>

            <td>
              * See [contract addresses](https://github.com/monad-crypto/protocols/blob/main/mainnet/stork.jsonc)<br />
              * [Addresses](https://docs.stork.network/resources/contract-addresses/evm); [APIs](https://docs.stork.network/api-reference/contract-apis/evm); [Asset ID Registry](https://docs.stork.network/resources/asset-id-registry)
            </td>

            <td>[Live Data](https://data.stork.network)</td>
            <td>[Push oracle](https://docs.stork.network/resources/stork-pushed-assets);<br />[Pull oracle](https://docs.stork.network/introduction/core-concepts)</td>
          </tr>

          <tr>
            <td>[Supra](https://supra.com/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.supra.com/)</td>
            <td>See [contract addresses](https://github.com/monad-crypto/protocols/blob/main/mainnet/supra_oracles.jsonc)</td>
            <td>[Live data](https://supra.com/data)</td>
            <td>[Push oracle](https://docs.supra.com/oracles/data-feeds/push-oracle);<br />[Pull oracle](https://docs.supra.com/oracles/data-feeds/pull-oracle);<br />[dVRF](https://docs.supra.com/oracles/dvrf)</td>
          </tr>

          <tr>
            <td>[Switchboard](https://switchboard.xyz/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.switchboard.xyz/)</td>

            <td>
              * See [contract addresses](https://github.com/monad-crypto/protocols/blob/main/mainnet/switchboard.jsonc)
              * More info: [Deployments](https://docs.switchboard.xyz/docs-by-chain/evm)
            </td>

            <td />

            <td>[Pull oracle](https://docs.switchboard.xyz/docs-by-chain/evm);<br />
            [Oracle aggregator](https://docs.switchboard.xyz/custom-feeds/advanced-feed-configuration/oracle-aggregator);<br />
            [VRF](https://docs.switchboard.xyz/docs-by-chain/evm/randomness)</td>
          </tr>
        </tbody>
      </table>
    </div>

    *✅ = supported, ⌛️ = in progress, ❓ = unknown, ❌ = won't support*
  </Tab>

  <Tab title="Testnet">
    <div class="mintlify-table-wrapper">
      <table class="mintlify-table">
        <thead>
          <tr>
            <th>Provider</th>
            <th>Status</th>
            <th>Docs</th>
            <th>Contract addresses</th>
            <th>Live data</th>
            <th>Support notes</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>[Chainlink](https://chain.link/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.chain.link/)</td>

            <td>
              Price Feeds \[push oracle]:<br />

              * BTC / USD: [`0x2Cd9D7E85494F68F5aF08EF96d6FD5e8F71B4d31`](https://testnet.monadvision.com/address/0x2Cd9D7E85494F68F5aF08EF96d6FD5e8F71B4d31)
              * ETH / USD: [`0x0c76859E85727683Eeba0C70Bc2e0F5781337818`](https://testnet.monadvision.com/address/0x0c76859E85727683Eeba0C70Bc2e0F5781337818)
              * LINK / USD: [`0x4682035965Cd2B88759193ee2660d8A0766e1391`](https://testnet.monadvision.com/address/0x4682035965Cd2B88759193ee2660d8A0766e1391)
              * USDC / USD: [`0x70BB0758a38ae43418ffcEd9A25273dd4e804D15`](https://testnet.monadvision.com/address/0x70BB0758a38ae43418ffcEd9A25273dd4e804D15)
              * USDT / USD: [`0x14eE6bE30A91989851Dc23203E41C804D4D71441`](https://testnet.monadvision.com/address/0x14eE6bE30A91989851Dc23203E41C804D4D71441)
              * [general reference](https://docs.chain.link/data-feeds/price-feeds/addresses?page=1\&testnetPage=1\&network=monad) <br /><br />

              Data Streams \[pull oracle]:<br />

              * Data stream verifier proxy address: [`0xC539169910DE08D237Df0d73BcDa9074c787A4a1`](https://testnet.monadvision.com/address/0xC539169910DE08D237Df0d73BcDa9074c787A4a1)
            </td>

            <td>[Live data](https://data.chain.link/streams)</td>

            <td>
              * Push oracle ([Price Feeds](https://docs.chain.link/data-feeds/price-feeds))
              * Pull oracle ([Data Streams](https://docs.chain.link/data-streams))
            </td>
          </tr>

          <tr>
            <td>[Chronicle](https://chroniclelabs.org/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.chroniclelabs.org/)</td>
            <td>[Address reference](https://docs.chroniclelabs.org/Developers/testnet)</td>
            <td>[Dashboard](https://chroniclelabs.org/dashboard/oracles?blockchain=MON-TESTNET) (toggle dev mode)</td>
            <td>Push oracle; custom oracles</td>
          </tr>

          <tr>
            <td>[eOracle](https://eo.app/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.eo.app/docs)</td>

            <td>
              * Update conditions: 0.5% deviation & 24h heartbeat
            </td>

            <td>[Dashboard](https://data.eo.app/)</td>
            <td>Push oracle</td>
          </tr>

          <tr>
            <td>[Gelato VRF](https://docs.gelato.network/web3-services/vrf/quick-start)</td>
            <td>✅</td>
            <td>[Docs](https://docs.gelato.network/web3-services/vrf/quick-start)</td>

            <td />

            <td />

            <td>VRF</td>
          </tr>

          <tr>
            <td>[Pyth](https://www.pyth.network/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.pyth.network/)</td>

            <td>
              * Price feeds: [`0x2880aB155794e7179c9eE2e38200202908C17B43`](https://testnet.monadvision.com/address/0x2880aB155794e7179c9eE2e38200202908C17B43)<br /><br />
              * Beta price feeds (incl MON/USDC): [`0xad2B52D2af1a9bD5c561894Cdd84f7505e1CD0B5`](https://testnet.monadvision.com/address/0xad2B52D2af1a9bD5c561894Cdd84f7505e1CD0B5)<br /><br />
              * Entropy: [`0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320`](https://testnet.monadvision.com/address/0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320)
            </td>

            <td>[Live data](https://www.pyth.network/price-feeds)<br /><br />
            [Beta live data](https://www.pyth.network/developers/price-feed-ids#beta) (includes MON / USDC)</td>
            <td>[Pull oracle](https://docs.pyth.network/price-feeds/pull-updates);<br />
            [VRF](https://docs.pyth.network/entropy)</td>
          </tr>

          <tr>
            <td>[Redstone](https://www.redstone.finance/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.redstone.finance/)</td>

            <td>
              * Push oracle [addresses](https://app.redstone.finance/app/feeds/?networks=10143)<br />
              * Update conditions for all: 0.5% deviation & 6h heartbeat
            </td>

            <td>[Live data](https://app.redstone.finance/app/tokens/)</td>
            <td>[Push oracle](https://app.redstone.finance/app/feeds/?networks=10143);<br />
            [pull oracle](https://app.redstone.finance/app/pull-model/redstone-primary-prod)</td>
          </tr>

          <tr>
            <td>[Stork](https://stork.network/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.stork.network/)</td>

            <td>
              * Pull oracle (includes MON/USD): [`0xacC0a0cF13571d30B4b8637996F5D6D774d4fd62`](https://testnet.monadvision.com/address/0xacC0a0cF13571d30B4b8637996F5D6D774d4fd62)<br />
              * [Addresses](https://docs.stork.network/resources/contract-addresses/evm); [APIs](https://docs.stork.network/api-reference/contract-apis/evm); [Asset ID Registry](https://docs.stork.network/resources/asset-id-registry)
            </td>

            <td>[Live Data](https://data.stork.network)</td>
            <td>[Pull oracle](https://docs.stork.network/introduction/core-concepts)</td>
          </tr>

          <tr>
            <td>[Supra](https://supra.com/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.supra.com/)</td>

            <td>
              * Storage: [`0xf0e852BC3F940447862D6b67e5B9807E64B433F6`](https://testnet.monadvision.com/address/0xf0e852BC3F940447862D6b67e5B9807E64B433F6)
              * Pull: [`0xF8522B7fcE37439b98A2be282d413A44269028bE`](https://testnet.monadvision.com/address/0xF8522B7fcE37439b98A2be282d413A44269028bE)
              * Router: [`0x5CbC3Dfa33223884E7752a833Fa6aD28Ee015FC4`](https://testnet.monadvision.com/address/0x5CbC3Dfa33223884E7752a833Fa6aD28Ee015FC4)
              * Deposit: [`0x95bfe6e94D5ff9e9d087647bc589acC9E3D31619`](https://testnet.monadvision.com/address/0x95bfe6e94D5ff9e9d087647bc589acC9E3D31619)
            </td>

            <td>[Live data](https://supra.com/data)</td>
            <td>[Push oracle](https://docs.supra.com/oracles/data-feeds/push-oracle);<br />[Pull oracle](https://docs.supra.com/oracles/data-feeds/pull-oracle);<br />[dVRF](https://docs.supra.com/oracles/dvrf)</td>
          </tr>

          <tr>
            <td>[Switchboard](https://switchboard.xyz/)</td>
            <td>✅</td>
            <td>[Docs](https://docs.switchboard.xyz/)</td>

            <td>
              * Pull oracle: [`0xD3860E2C66cBd5c969Fa7343e6912Eff0416bA33`](https://testnet.monadvision.com/address/0xD3860E2C66cBd5c969Fa7343e6912Eff0416bA33)<br /><br />
              * More info: [Deployments](https://docs.switchboard.xyz/docs-by-chain/evm)
            </td>

            <td>[Live data](https://explorer.switchboardlabs.xyz/)</td>
            <td>[Pull oracle](https://docs.switchboard.xyz/docs-by-chain/evm);<br />
            [Oracle aggregator](https://docs.switchboard.xyz/custom-feeds/advanced-feed-configuration/oracle-aggregator);<br />
            [VRF](https://docs.switchboard.xyz/docs-by-chain/evm/randomness)</td>
          </tr>
        </tbody>
      </table>
    </div>

    *✅ = supported, ⌛️ = in progress, ❓ = unknown, ❌ = won't support*
  </Tab>
</Tabs>

## Provider Details

### Chainlink

#### Chainlink Data Streams

[Chainlink Data Streams](https://docs.chain.link/data-streams) deliver low-latency market data offchain, which can be verified onchain. This approach provides decentralized applications (dApps) with on-demand access to high-frequency market data backed by decentralized, fault-tolerant, and transparent infrastructure.

Traditional push-based oracles update onchain data at set intervals or when certain price thresholds are met. In contrast, Chainlink Data Streams uses a pull-based design that preserves trust-minimization with onchain verification.

To get started, check out the [documentation](https://docs.chain.link/data-streams).

#### Chainlink Price Feeds

[Chainlink Price Feeds](https://docs.chain.link/data-feeds) are the quickest way to connect your smart contracts to real-world data such as asset prices.

Data Feeds aggregate many data sources and publish them onchain using a combination of the [Decentralized Data Model](https://docs.chain.link/architecture-overview/architecture-decentralized-model?parent=dataFeeds) and [Offchain Reporting](https://docs.chain.link/architecture-overview/off-chain-reporting?parent=dataFeeds).

To get started, check out the [documentation](https://docs.chain.link/data-feeds).

### Chronicle

Chronicle's decentralized oracle network was originally built within MakerDAO for the development of DAI and is now available to builders on Monad.

* **Data Feeds**: Builders can choose from 90+ data feeds, including crypto assets, yield rates, and RWAs. Chronicle's data is sourced via custom-built data models, only utilizing Tier 1 sources.
* **Transparency & Integrity**: Chronicle's oracle network is fully transparent and verifiable via the [Chronicle dashboard](https://chroniclelabs.org/dashboard/oracles?blockchain=MON-TESTNET). Users can cryptographically challenge the integrity of every oracle update using the 'verify' feature. Data is independently sourced by a [community of Validators](https://chroniclelabs.org/validators) including Gitcoin, Etherscan, Infura, DeFi Saver, and MakerDAO.
* **Gas Efficiency**: Pioneering the Schnorr-based oracle architecture, Chronicle's oracles use 60-80% less gas per update than other oracle providers. This lowest cost per update allows Push oracle updates to be made more frequently, enabling granular data reporting.
* Every oracle implementation is customized to fit your needs. Implement one of our existing data models or contact Chronicle to develop custom oracle data feeds via [Discord](https://discord.gg/CjgvJ9EspJ).

Developers can dive deeper into Chronicle Protocol's architecture and unique design choices via the [docs](https://docs.chroniclelabs.org/).

### eOracle

[eOracle](https://eo.app/) is an open infrastructure platform that empowers developers to build secure blockchain oracles backed by Ethereum's battle-tested security model. eOracle creates a foundation for specialized data services that combine deep domain expertise with unmatched cryptoeconomic security.

To get started, visit the [eOracle documentation](https://docs.eo.app/docs).

### Pyth

The [Pyth Network](https://www.pyth.network/) is one of the largest first-party oracle networks, delivering real-time data across a number of chains. Pyth introduces a low-latency [pull oracle](https://docs.pyth.network/price-feeds/pull-updates) design. Data providers push price updates to [Pythnet](https://docs.pyth.network/price-feeds/how-pyth-works/pythnet) every 400 ms. Users pull aggregated prices from Pythnet onto Monad when needed, enabling everyone in the onchain environment to access that data point most efficiently.

Pyth Price Feeds features:

* 400ms latency
* [First-party](https://www.pyth.network/publishers) data sourced directly from financial institutions
* [Price feeds](https://www.pyth.network/developers/price-feed-ids) ranging from crypto, stocks, FX, and metals
  * See also: [beta price feeds](https://www.pyth.network/developers/price-feed-ids#beta) (testnet MON/USD is a beta price feed)
* Available on [many](https://docs.pyth.network/price-feeds/contract-addresses) major chains

Contract Addresses for Monad Testnet:

* Price feeds: [`0x2880aB155794e7179c9eE2e38200202908C17B43`](https://testnet.monadvision.com/address/0x2880aB155794e7179c9eE2e38200202908C17B43)
  * Beta price feeds: [`0xad2B52D2af1a9bD5c561894Cdd84f7505e1CD0B5`](https://testnet.monadvision.com/address/0xad2B52D2af1a9bD5c561894Cdd84f7505e1CD0B5) (testnet MON/USD is a beta price feed)
* Entropy: [`0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320`](https://testnet.monadvision.com/address/0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320)

<Note>
  The testnet `MON/USD` price feed is currently a beta feed on Pyth Network. To use the MON/USD feed, integrate the [beta price feed](https://testnet.monadvision.com/address/0xad2B52D2af1a9bD5c561894Cdd84f7505e1CD0B5) contract instead of the primary price feed contract.

  To get the MON/USD price feed offchain, use the beta hermes endpoint: [https://hermes-beta.pyth.network](https://hermes-beta.pyth.network)
</Note>

### Redstone

[RedStone](https://www.redstone.finance/) is the fastest-growing modular oracle, specializing in yield-bearing collateral for lending markets, such as LSTs, LRTs and BTCFi.

To get started, visit the [Redstone documentation](https://docs.redstone.finance/docs/introduction).

### Stork

[Stork](https://stork.network/) is an oracle protocol that enables ultra low latency connections between data providers and both on and off-chain applications. The most common use-case for Stork is pulling and consuming market data in the form of real time price feeds for DeFi.

Stork is implemented as a [pull oracle](https://docs.stork.network/introduction/core-concepts#docs-internal-guid-4b312e7b-7fff-1147-c04b-bbaadec1a82a). Stork continuously aggregates, verifies, and audits data from trusted publishers, and makes that aggregated data available at sub-second latency and frequency. This data can then be pulled into any on or off-chain application as often as needed.

To learn more about how Stork works, visit [Core Concepts](https://docs.stork.network/introduction/core-concepts) and [How It Works](https://docs.stork.network/introduction/how-it-works).

### Supra

[Supra](https://supra.com) provides VRF and decentralized oracle price feeds (push and pull based) that can be used for onchain and offchain use-cases such as spot and perpetual DEXes, lending protocols, and payments protocols.

To get started, visit the [Supra documentation](https://docs.supra.com)

### Switchboard

[Switchboard](https://switchboard.xyz/) is a permissionless oracle protocol that enables developers to bring any off-chain or cross-chain data onto Monad through verifiable, ultra-low-latency feeds.

Switchboard features:

* Fully permissionless feed creation via the [Feed Builder](https://explorer.switchboardlabs.xyz/feed-builder): deploy custom oracles in minutes
* [Switchboard Surge](https://docs.switchboard.xyz/docs-by-chain/evm/surge): Low-latency data feeds with sub-10 ms updates for high-performance applications
* Enterprise-grade reliability
* [Aggregator](https://docs.switchboard.xyz/custom-feeds/advanced-feed-configuration/oracle-aggregator): access multiple oracle sources (like the ones on this page) in a single transaction
* [Data Feed Variables](https://docs.switchboard.xyz/product-documentation/data-feeds/designing-feeds/data-feed-variable-overrides): bring API-gated or confidential data on-chain without exposing API keys
* Customizable feeds: adjust feed parameters (confidence intervals, deviation thresholds, and more) to your dapp's needs
* Decentralized oracle network secured by globally distributed validator set
* Verifiable Randomness: generate secure, verifiable random numbers for games, lotteries, and more
* Supports any data type: prices, prediction markets, sports, weather, RWAs, etc

Contract Address for Monad Mainnet: [`0xB7F03eee7B9F56347e32cC71DaD65B303D5a0E67`](https://monadvision.com/address/0xB7F03eee7B9F56347e32cC71DaD65B303D5a0E67)

For more details, check out [Switchboard's detailed EVM documentation](https://docs.switchboard.xyz/docs-by-chain/evm).
