Benchmarking Blockchain Indexer Sync Speeds
- Envio ranked fastest across 6 indexing solutions tested on the Uniswap V3 ETH-USDC pool on Ethereum Mainnet, syncing 5.3 million events in 9.67 minutes.
- The next fastest competitor took 20.5 minutes. The slowest took 1,529 minutes.
- All benchmark code is publicly available. These results reflect Envio v0.0.20. Performance has improved significantly since with HyperSync.
Sync speed is how long it takes an indexer to catch up to the chain head from a historical starting block. It sounds like a narrow metric, but it shapes the entire development loop. Every time you change handler logic, update a schema, or debug an issue on a live contract, you are waiting for a sync before you can see the result. Slow syncs mean slow iteration. Fast syncs mean teams ship faster.
This article presents the findings from benchmarking tests conducted at Envio, comparing six blockchain indexing solutions on a standardised scenario.
Methodology
To make results as comparable as possible, all indexers were configured identically:
- Start block: 12,376,729 (deployment block of the Uniswap V3 ETH-USDC pool)
- End block: 18,342,024 (chain head at time of testing)
- Total events: approximately 5,395,050 raw events (0.9044 events per block)
- Same schema across all implementations
- Same event handler logic across all implementations
The Uniswap V3 ETH-USDC pool was chosen for its high event density, making it a strong stress test for indexer performance. You can view the contract on Etherscan.
Schema
type Swap {
id: Bytes!
sender: Bytes! # address
recipient: Bytes! # address
amount0: BigInt! # int256
amount1: BigInt! # int256
sqrtPriceX96: BigInt! # uint160
liquidity: BigInt! # uint128
tick: Int! # int24
blockNumber: BigInt!
blockTimestamp: BigInt!
transactionHash: Bytes!
}
Event handler logic
The handler logic was kept lightweight. Each indexer listened for the Swap event and appended event details to the Swap entity table. No complex joins or derived fields.
Indexers Tested
Six indexing solutions were included:
- Envio v0.0.20
- Envio v0.0.19
- Subsquid
- Subgraph on The Graph hosted service
- Ponder
- Substreams-powered Subgraph on The Graph hosted service
Benchmark repositories
All implementations are publicly available for review and reproduction:
- Envio: uniV3-swaps
- Ponder: univ3-ponder
- Subsquid: univ3-sqd
- Substreams-powered Subgraph: univ3-substreams
Results
Total sync times in minutes, sorted fastest to slowest:
| Indexer | Total sync time (mins) |
|---|---|
| Envio v0.0.20 | 9.67 |
| Subsquid | 20.50 |
| Envio v0.0.19 | 21.00 |
| Ponder | 780.37 |
| The Graph | 1,000.00 |
| Substreams-powered Subgraph | 1,529.33 |
Key takeaways
Envio v0.0.20 ranked fastest across all solutions tested:
- 2.12x faster than Subsquid
- 80.6x faster than Ponder
- 103x faster than The Graph
- 157x faster than Substreams-powered Subgraph
Disclaimer: These results are specific to the Uniswap V3 ETH-USDC pool scenario. Relative performance between indexers will vary by use case.
Caveats
- Envio and Subsquid were run on local machines. Subgraphs were deployed on a hosted service, which introduces potential variance.
- Ponder was deployed on a virtual machine with 4GB RAM and 80GB disk.
- Ponder's sync time was extrapolated from initial indexing progress rather than measured to completion.
Performance since these benchmarks
These benchmarks reflect Envio v0.0.20 from late 2023. Since then, Envio has shipped HyperSync, a purpose-built data engine that replaces RPC for historical data retrieval entirely. The 2000x faster figure referenced in Envio's documentation refers to HyperSync vs standard RPC endpoints, not this indexer-to-indexer comparison. Real-world sync times with HyperSync are faster than what these numbers show.
The benchmark data and repositories remain public. We encourage the community to run the tests independently and share results.
Frequently asked questions
What was being benchmarked?
Sync speed across six blockchain indexing solutions, using the Uniswap V3 ETH-USDC pool on Ethereum Mainnet as the test contract. All indexers used the same schema, start block, end block, and handler logic.
How does Envio compare to The Graph?
In this benchmark, Envio v0.0.20 synced in 9.67 minutes vs approximately 1,000 minutes for The Graph's hosted subgraph, roughly 103x faster. These results reflect a specific high event-density scenario and the versions available at the time of testing.
Are these benchmarks still current?
These benchmarks were run on Envio v0.0.20 in late 2023. Performance has improved significantly since with the introduction of HyperSync. Updated benchmarks covering more indexers and scenarios are planned.
Where can I verify the results?
All benchmark implementations are publicly available on GitHub. Links to each repository are in the Benchmark repositories section above.
What scenarios will future benchmarks cover?
Planned variations include different numbers of contracts and events, varying event density per block, more complex schema structures, and handler logic that involves loading and updating existing entities.
Build With Envio
Envio was the fastest EVM blockchain indexer in the 2023 benchmark above, and more recent independent tests run by Sentio in May 2025 show HyperIndex is still the fastest blockchain indexer available (Sentio benchmark, May 2025). If you are building onchain and need indexing that keeps up with your chain, check out the docs, run the benchmarks yourself, and come talk to us about your data needs.
Stay tuned for more updates by subscribing to our newsletter, following us on X, or hopping into our Discord.
Website | X | Discord | Telegram | GitHub | YouTube | Reddit