Overview
Skip Oracle
The Skip oracle provides native BTC/USD price feeds on Mezo through a Chainlink-compatible aggregator interface.BTC/USD only
Every block
Pyth Oracle
The Pyth oracle provides multiple price feeds beyond BTC/USD. Update frequency: Depends on the tokens pair.- On Mezo see configuration file for details.
- On Ethereum see configuration file for details.
Price is being updated when
price_deviation deviates more than a set threshold (in percentage points) or every time_difference seconds, whichever is first.Best Practices
When building dApps that consume oracle data, follow these guidelines:- Validate freshness: Always check timestamps and block numbers to detect stale data. Set appropriate staleness thresholds for your use case.
- Set price bounds: Implement sanity checks on price values to detect anomalies or manipulation attempts.
- Monitor market conditions: Be aware of volatility, liquidity, and potential manipulation events that may require pausing your application.
- Security audits: Ensure your contracts and dependencies meet security standards. Audit code that handles oracle data to prevent exploits.
Reading Price Feeds
Using Skip Oracle (BTC/USD)
The Skip oracle implements a Chainlink-compatible interface. CalllatestRoundData() to retrieve the latest price:
Contract: 0x7b7c000000000000000000000000000000000015
Return values:
The round ID when the price was updated
The BTC/USD price (use
decimals() to get the decimal precision)Unix timestamp when the round started
Unix timestamp when the round was last updated
Using Pyth Oracle (Multiple Feeds)
Pyth provides multiple price feeds through its EVM contracts. UsegetPriceNoOlderThan(pair_id, maxAgeSeconds) to fetch prices with built-in staleness checks.
Contract Addresses
Example Implementation
Example to fetch the price for a given price id:Offchain Price Data
You can query price feeds and metadata directly from the Pyth Network without interacting with the blockchain:- Hermes API: https://hermes.pyth.network/docs/#/rest/price_feeds_metadata
- Price feed IDs: https://docs.pyth.network/price-feeds/price-feeds#feed-ids
Available Price Feeds
Skip Oracle Feeds
Available on both Mezo mainnet and testnet:| Pair | Contract Address | Network |
|---|---|---|
| BTC/USD | 0x7b7c000000000000000000000000000000000015 | Mainnet |
| BTC/USD | 0x7b7c000000000000000000000000000000000015 | Testnet |
Node API (Testnet only): http://mezo-node-0.test.mezo.org:1317/connect/oracle/v2/get_price?currency_pair=BTC/USD
Pyth Oracle Feeds
Available on:- Mezo Mainnet at
0x2880aB155794e7179c9eE2e38200202908C17B43 - Mezo Testnet at
0x2880aB155794e7179c9eE2e38200202908C17B43 - Ethereum Mainnet at
0x4305FB66699C3B2702D4d05CF36551390A4c69C6 - Ethereum Sepolia at
0xDd24F84d36BF92C65F92307595335bdFab5Bbd21
Supported Price Feed IDs (Mezo)
| Pair | Price Feed ID |
|---|---|
| SolvBTC/USD | 0xf253cf87dc7d5ed5aa14cba5a6e79aee8bcfaef885a0e1b807035a0bbecc36fa |
| MUSD/USD | 0x0617a9b725011a126a2b9fd53563f4236501f32cf76d877644b943394606c6de |
| BTC/USD | 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43 |
| cbBTC/USD | 0x2817d7bfe5c64b8ea956e9a26f573ef64e72e4d7891f2d6af9bcc93f7aff9a97 |
| USDC/USD | 0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a |
| USDT/USD | 0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b |
| T/USD | 0x7a072b799215196b0ecb6a58636ec312bce8461dcc33c28c3a046b1e636d121d |
Supported Price Feed IDs (Ethereum)
| Pair | Price Feed ID |
|---|---|
| MUSD/USD | 0x0617a9b725011a126a2b9fd53563f4236501f32cf76d877644b943394606c6de |
| USDT/USD | 0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b |
Requesting additional price feeds: To enable additional Pyth price feeds, browse the complete list of available price feed IDs and contact the Mezo team to request onchain activation.