> ## 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>[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 />

              * [general reference](https://docs.chain.link/data-feeds/price-feeds/addresses?page=1\&testnetPage=1\&network=monad)
            </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>[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 (incl MON/USD): [`0x2880aB155794e7179c9eE2e38200202908C17B43`](https://testnet.monadvision.com/address/0x2880aB155794e7179c9eE2e38200202908C17B43)<br /><br />
              * Entropy: [`0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320`](https://testnet.monadvision.com/address/0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320)
            </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>
              * 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: [`0x33A5066f65f66161bEb3f827A3e40fce7d7A2e6C`](https://testnet.monadscan.com/address/0x33A5066f65f66161bEb3f827A3e40fce7d7A2e6C)<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/).

### 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
* 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)
* Entropy: [`0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320`](https://testnet.monadvision.com/address/0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320)

<Note>
  The `MON/USD` price feed has graduated from Pyth's beta program and is served by the primary price feed contract on both testnet and mainnet, under feed id [`0x31491744e2dbf6df7fcf4ac0820d18a609b49076d45066d3568424e62f686cd1`](https://www.pyth.network/developers/price-feed-ids).

  To get the MON/USD price feed offchain, use the standard hermes endpoint: [https://hermes.pyth.network](https://hermes.pyth.network)

  If you previously integrated the beta price feed contract (`0xad2B52D2af1a9bD5c561894Cdd84f7505e1CD0B5`) for MON/USD, migrate to the primary contract: the beta contract no longer serves this feed.
</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).
