Skip to content

Commit 2fbd661

Browse files
authored
oracle wars blog (#616)
1 parent 5b39169 commit 2fbd661

12 files changed

+249
-7
lines changed

blog/2025-04-15-oracle-wars.md

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
title: Oracle Wars - Exploring Real-Time Oracle Behavior and Push-Based Feeds
3+
sidebar_label: Oracle Wars - Exploring Real-Time Oracle Behavior and Push-Based Feeds
4+
slug: /oracle-wars
5+
---
6+
7+
<img src="/blog-assets/oracle-wars-1.png" alt="Cover Image Oracle Wars" width="100%"/>
8+
9+
<!--truncate-->
10+
11+
Oracles are the unsung heroes of DeFi. They connect blockchains to real-world data, enabling smart contracts to interact with off-chain events like asset prices (USDC, ETH), market rates, or even real-time sports scores. But while the concept of oracles is often discussed in theoretical terms, visualizing how they behave in practice can offer a new level of clarity, especially for developers building apps on-chain.
12+
13+
Enter [Oracle Wars](https://www.oraclewars.xyz/), a live feed of on-chain oracle data that compares how different providers behave in real-time. It helps developers visualize and gain a better understanding of how oracles actually function under different market conditions, so they can design more reliable and secure smart contracts.
14+
15+
**Please note**: The dashboard shown above is no longer live on the site, but the platform remains focused on delivering valuable insights into oracle performance. Oracle Wars is an educational and experimental platform designed to showcase data from various oracle providers, with the goal of improving the understanding of oracle behavior through real-time data analysis, which is constantly evolving and being updated.
16+
17+
18+
## What is a Blockchain Oracle?
19+
20+
If you're building in the decentralized space, you’ve more than likely heard about oracles. In simple terms, they allow smart contracts to react to external data sources. Whether it's the latest price of an asset or the outcome of a sporting event, oracles are how the blockchain sees the world.
21+
22+
Over time, oracle architectures have evolved. From the early days of Truffle and Ganache to today’s production-grade protocols, we've seen the rise of push-based oracles, pull-based oracles, and many more. Each design has trade-offs. For now, let’s zero in on push oracles and how they behave from a data perspective.
23+
24+
25+
26+
### Push Oracles in Practice
27+
28+
A push oracle works exactly as the name implies: it periodically pushes data onto the blockchain. Your contract can then read that data and respond accordingly, whether it's executing a trade, adjusting a loan-to-value ratio, or minting some ridiculous meme coin.
29+
30+
31+
#### Most push oracles use two primary mechanisms:
32+
33+
34+
35+
1. **Heartbeat intervals** – Regular updates (e.g., every 24 hours)
36+
2. **Deviation thresholds** – Immediate updates when data shifts significantly (e.g., 0.5% price movement)
37+
38+
39+
40+
## Visualizing Real-Time Oracle Activity with Oracle Wars
41+
42+
Wonder what happens in live conditions, during periods of high volatility? That’s where Oracle Wars comes in. It can show a live comparison between price feeds from different oracle providers, such as [Chainlink](https://chain.link/) and [RedStone](https://www.redstone.finance/).
43+
44+
You’ll notice that updates aren’t always evenly spaced. That’s the deviation threshold kicking in when markets get volatile, updates come in fast. When things are calm, fewer updates appear. It’s a valuable pattern to observe, especially if you’re designing a protocol that depends on accurate and real-time data.
45+
46+
For example, this volatility spike, between Chainlink and RedStone posted frequent updates to reflect price changes, an essential feature for platforms like [Aave](https://app.aacve.com/dashboard), which depend on real-time data for liquidation logic and capital safety.
47+
48+
<img src="/blog-assets/oracle-wars-2.png" alt="Oracle Wars 2" width="100%"/>
49+
50+
## Understanding the Limitations of Deviation Thresholds in Push Oracles
51+
52+
Oracle Wars also allows you to see the maximum deviation between any two consecutive price points over 24 hours. Why does this matter? Every DeFi protocol relies on timely and accurate price data, and large shifts between updates can lead to exploit risk, broken assumptions, or cascading failures. This metric gives developers a real-world view of how much price movement can actually occur between updates, even when using well-known oracle providers.
53+
54+
This brings us to a common misunderstanding: deviation thresholds are not strict limits.
55+
56+
Take Chainlink and RedStone, for instance. Both use a 0.5% deviation threshold for price feeds. That should mean the oracle updates whenever the price moves more than 0.5%. But here’s the catch:
57+
58+
A 0.5% deviation threshold does not mean consecutive on-chain prices will only differ by 0.5%.
59+
60+
In practice, you might see larger deviations. Over 24 hours alone, Oracle Wars recorded deviations of around 0.67% for both providers. This doesn’t mean the oracles were broken, it means they’re working as designed. The threshold is more of a trigger condition than a strict upper bound.
61+
62+
So if you're competing in security audits on platforms like Sherlock, Code4rena, or CodeHawks, it's worth thinking through these edge cases. Your protocol logic needs to account for these potentially higher-than-expected changes, especially in volatile markets.
63+
64+
65+
## Is a Super-Fast Push Oracle Now Better Than a Pull Oracle?
66+
67+
With the advent of high-speed chains like MegaETH and Monad, we’re starting to see the rise of ultra-fast push oracles that update data with each block. This near-instantaneous data feed challenges traditional push oracles, offering freshness comparable to pull oracles, provided transaction costs remain manageable.
68+
69+
On Oracle Wars, you can now observe how these super-fast push oracles behave in real-time, with feeds like the ETH/USD price on MegaETH. The data is continuously updated, providing a new level of insight into how push oracles might evolve to rival the responsiveness of pull models.
70+
71+
<img src="/blog-assets/oracle-wars-3.png" alt="Oracle Wars 2" width="100%"/>
72+
73+
However, one aspect that remains intriguing is the frequent occurrence of multiple price updates at the same timestamp. This raises questions about whether these oracles are pushing multiple updates within the same block, and the rationale behind this granularity.
74+
75+
While Redstone's "Bolt" push oracle is an exciting development, it’s still early days. It will be interesting to see how other oracle providers and chains approach the super-fast push model. The key question remains: Can these ultra-fast push oracles maintain the freshness and reliability of pull oracles without significant cost overhead?
76+
77+
78+
## Oracle Wars: Powered by Envio’s HyperIndex
79+
80+
To pull this off and index this level of data, we used HyperIndex, our open blockchain indexing framework which seamlessly queried this data effortlessly. The entire Oracle Wars platform was built in under two hours using Envio’s HyperIndex, which made indexing real-time oracle data smooth and easy.
81+
82+
If you're building dashboards, simulations, or monitoring tools, it’s worth checking out. Need help getting started? Feel free to reach out to us in our Discord or on Telegram, we’re always happy to walk you through it!
83+
84+
85+
### Helpful Resources
86+
87+
88+
89+
* [HyperIndex Quickstart](https://docs.envio.dev/docs/HyperIndex/contract-import)
90+
* [Guides](https://docs.envio.dev/docs/HyperIndex/configuration-file)
91+
* [Examples](https://docs.envio.dev/docs/HyperIndex/example-uniswap-v4-multi-chain-indexer)
92+
* [GitHub Repo](https://github.com/enviodev/hyperindex)
93+
94+
Thanks for reading, and if you're curious, feel free to check out the original background posts on X that kicked this all off:
95+
96+
97+
98+
* [Thinking through oracles with data](https://x.com/jonjonclark/status/1890426833088246054)
99+
* [Understanding the Limitations of Deviation Thresholds in Push Oracles](https://x.com/jonjonclark/status/1892208677815300350)
100+
* [How Much Latency Do High-Frequency Oracle Push Feeds Actually Have?](https://x.com/jonjonclark/status/1903109614318575809)
101+
* [Is a super-fast push oracle now better than a pull oracle?](https://x.com/jonjonclark/status/1909635483182789020)
102+
103+
104+
## About Envio
105+
106+
[Envio](https://envio.dev/) is an open blockchain indexing framework that addresses the limitations of traditional blockchain indexing approaches and gives developers peace of mind. Blockchain developers and data analysts can harness the power of Envio to overcome the challenges posed by latency, reliability, infrastructure management, and costs across various sources.
107+
108+
If you're a blockchain developer looking to enhance your development process and unlock the true potential of Web3 infrastructure, look no further.
109+
110+
Join our growing community of Web3 developers, check out our docs, and let's work together to revolutionize the blockchain world and propel your project to the next level.
111+
112+
[Website](https://envio.dev/) | [X](https://twitter.com/envio_indexer) | [Discord](https://discord.com/invite/gt7yEUZKeB) | [Farcaster](https://warpcast.com/envio) | [GitHub](https://github.com/enviodev) | [Medium](https://medium.com/@Envio_Indexer) | [YouTube](https://www.youtube.com/channel/UCR7nZ2yzEtc5SZNM0dhrkhA) | [Reddit](https://www.reddit.com/user/Envio_indexer)

docs/HyperIndex/supported-networks/arbitrum.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ slug: /arbitrum
1919

2020
### Tier
2121

22-
GOLD 🏅
22+
SILVER 🥈
2323

2424
### Overview
2525

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
id: curtis
3+
title: Curtis
4+
sidebar_label: Curtis
5+
slug: /curtis
6+
---
7+
8+
# Curtis
9+
10+
## Indexing Curtis Data with Envio
11+
12+
| **Field** | **Value** |
13+
|-------------------------------|----------------------------------------------------------------------------------------------------|
14+
| **Curtis Chain ID** | 33111 |
15+
| **HyperSync URL Endpoint** | [https://curtis.hypersync.xyz](https://curtis.hypersync.xyz) or [https://33111.hypersync.xyz](https://33111.hypersync.xyz) |
16+
| **HyperRPC URL Endpoint** | [https://curtis.rpc.hypersync.xyz](https://curtis.rpc.hypersync.xyz) or [https://33111.rpc.hypersync.xyz](https://33111.rpc.hypersync.xyz) |
17+
18+
---
19+
20+
### Tier
21+
22+
STONE 🪨
23+
24+
### Overview
25+
26+
Envio is a modular hyper-performant data indexing solution for Curtis, enabling applications and developers to efficiently index and aggregate real-time and historical blockchain data. Envio offers three primary solutions for indexing and accessing large amounts of data: [HyperIndex](/docs/HyperIndex/overview) (a customizable indexing framework), [HyperSync](/docs/HyperSync/overview) (a real-time indexed data layer), and [HyperRPC](/docs/HyperSync/overview-hyperrpc) (extremely fast read-only RPC).
27+
28+
HyperSync accelerates the synchronization of historical data on Curtis, enabling what usually takes hours to sync millions of events to be completed in under a minute—up to 1000x faster than traditional RPC methods.
29+
30+
Designed to optimize the user experience, Envio offers automatic code generation, flexible language support, multi-chain data aggregation, and a reliable, cost-effective hosted service.
31+
32+
To get started, see our documentation or follow our quickstart [guide](/docs/HyperIndex/contract-import).
33+
34+
---
35+
36+
### Defining Network Configurations
37+
38+
```yaml
39+
name: IndexerName # Specify indexer name
40+
description: Indexer Description # Include indexer description
41+
networks:
42+
- id: 33111 # Curtis
43+
start_block: START_BLOCK_NUMBER # Specify the starting block
44+
contracts:
45+
- name: ContractName
46+
address:
47+
- "0xYourContractAddress1"
48+
- "0xYourContractAddress2"
49+
handler: ./src/EventHandlers.ts
50+
events:
51+
- event: Event # Specify event
52+
- event: Event
53+
```
54+
55+
With these steps completed, your application will be set to efficiently index Curtis data using Envio’s blockchain indexer.
56+
57+
For more information on how to set up your config, define a schema, and write event handlers, refer to the guides section in our [documentation](/docs/HyperIndex/configuration-file).
58+
59+
### Support
60+
61+
Can’t find what you’re looking for or need support? Reach out to us on [Discord](https://discord.com/invite/Q9qt8gZ2fX); we’re always happy to help!
62+
63+
---
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
id: monad-testnet-backup
3+
title: Monad Testnet Backup
4+
sidebar_label: Monad Testnet Backup
5+
slug: /monad-testnet-backup
6+
---
7+
8+
# Monad Testnet Backup
9+
10+
## Indexing Monad Testnet Backup Data with Envio
11+
12+
| **Field** | **Value** |
13+
|-------------------------------|----------------------------------------------------------------------------------------------------|
14+
| **Monad Testnet Backup Chain ID** | 10143333333 |
15+
| **HyperSync URL Endpoint** | [https://monad-testnet-backup.hypersync.xyz](https://monad-testnet-backup.hypersync.xyz) or [https://10143333333.hypersync.xyz](https://10143333333.hypersync.xyz) |
16+
| **HyperRPC URL Endpoint** | [https://monad-testnet-backup.rpc.hypersync.xyz](https://monad-testnet-backup.rpc.hypersync.xyz) or [https://10143333333.rpc.hypersync.xyz](https://10143333333.rpc.hypersync.xyz) |
17+
18+
---
19+
20+
### Tier
21+
22+
HIDDEN 🔒
23+
24+
### Overview
25+
26+
Envio is a modular hyper-performant data indexing solution for Monad Testnet Backup, enabling applications and developers to efficiently index and aggregate real-time and historical blockchain data. Envio offers three primary solutions for indexing and accessing large amounts of data: [HyperIndex](/docs/HyperIndex/overview) (a customizable indexing framework), [HyperSync](/docs/HyperSync/overview) (a real-time indexed data layer), and [HyperRPC](/docs/HyperSync/overview-hyperrpc) (extremely fast read-only RPC).
27+
28+
HyperSync accelerates the synchronization of historical data on Monad Testnet Backup, enabling what usually takes hours to sync millions of events to be completed in under a minute—up to 1000x faster than traditional RPC methods.
29+
30+
Designed to optimize the user experience, Envio offers automatic code generation, flexible language support, multi-chain data aggregation, and a reliable, cost-effective hosted service.
31+
32+
To get started, see our documentation or follow our quickstart [guide](/docs/HyperIndex/contract-import).
33+
34+
---
35+
36+
### Defining Network Configurations
37+
38+
```yaml
39+
name: IndexerName # Specify indexer name
40+
description: Indexer Description # Include indexer description
41+
networks:
42+
- id: 10143333333 # Monad Testnet Backup
43+
start_block: START_BLOCK_NUMBER # Specify the starting block
44+
contracts:
45+
- name: ContractName
46+
address:
47+
- "0xYourContractAddress1"
48+
- "0xYourContractAddress2"
49+
handler: ./src/EventHandlers.ts
50+
events:
51+
- event: Event # Specify event
52+
- event: Event
53+
```
54+
55+
With these steps completed, your application will be set to efficiently index Monad Testnet Backup data using Envio’s blockchain indexer.
56+
57+
For more information on how to set up your config, define a schema, and write event handlers, refer to the guides section in our [documentation](/docs/HyperIndex/configuration-file).
58+
59+
### Support
60+
61+
Can’t find what you’re looking for or need support? Reach out to us on [Discord](https://discord.com/invite/Q9qt8gZ2fX); we’re always happy to help!
62+
63+
---

docs/HyperIndex/supported-networks/moonbeam.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ slug: /moonbeam
1919

2020
### Tier
2121

22-
SILVER 🥈
22+
BRONZE 🥉
2323

2424
### Overview
2525

docs/HyperIndex/supported-networks/polygon.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ slug: /polygon
1919

2020
### Tier
2121

22-
GOLD 🏅
22+
SILVER 🥈
2323

2424
### Overview
2525

docs/HyperSync/HyperRPC/hyperrpc-url-endpoints.md

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Here is a table of the currently supported networks on HyperRPC and their respec
3232
| Celo | 42220 | https://celo.rpc.hypersync.xyz or https://42220.rpc.hypersync.xyz | |
3333
| Chiliz | 8888 | https://chiliz.rpc.hypersync.xyz or https://8888.rpc.hypersync.xyz | |
3434
| Citrea Testnet | 5115 | https://citrea-testnet.rpc.hypersync.xyz or https://5115.rpc.hypersync.xyz | |
35+
| Curtis | 33111 | https://curtis.rpc.hypersync.xyz or https://33111.rpc.hypersync.xyz | |
3536
| Cyber | 7560 | https://cyber.rpc.hypersync.xyz or https://7560.rpc.hypersync.xyz | |
3637
| Darwinia | 46 | https://darwinia.rpc.hypersync.xyz or https://46.rpc.hypersync.xyz | ✔️ |
3738
| Ethereum Mainnet | 1 | https://eth.rpc.hypersync.xyz or https://1.rpc.hypersync.xyz | ✔️ |
@@ -64,6 +65,7 @@ Here is a table of the currently supported networks on HyperRPC and their respec
6465
| Mev Commit | 17864 | https://mev-commit.rpc.hypersync.xyz or https://17864.rpc.hypersync.xyz | |
6566
| Mode | 34443 | https://mode.rpc.hypersync.xyz or https://34443.rpc.hypersync.xyz | |
6667
| Monad Testnet | 10143 | https://monad-testnet.rpc.hypersync.xyz or https://10143.rpc.hypersync.xyz | |
68+
| Monad Testnet Backup | 10143333333 | https://monad-testnet-backup.rpc.hypersync.xyz or https://10143333333.rpc.hypersync.xyz | |
6769
| Moonbase Alpha | 1287 | https://moonbase-alpha.rpc.hypersync.xyz or https://1287.rpc.hypersync.xyz | |
6870
| Moonbeam | 1284 | https://moonbeam.rpc.hypersync.xyz or https://1284.rpc.hypersync.xyz | |
6971
| Morph | 2818 | https://morph.rpc.hypersync.xyz or https://2818.rpc.hypersync.xyz | |

0 commit comments

Comments
 (0)