Improving subgraph indexing efficiency is becoming increasingly important, and one of the most effective ways to achieve this is by reducing the number of eth_calls. This recommendation comes from The Graph Protocol’s recently introduced Best Practices in Subgraph Development series, which aims to help developers streamline and optimize their subgraph workflows.
Why Reducing eth_calls Matters
Subgraphs act as decentralized, open-source APIs that power fast and reliable front ends for Web3 applications. As dapps grow and usage scales, indexing performance becomes critical. A major factor that can slow down this process is excessive eth_calls — requests made through JSON RPC to retrieve blockchain state data from smart contracts.
These calls often take anywhere from a fraction of a second to several seconds to complete. When repeated frequently, they can create unnecessary delays and bottlenecks during indexing.
Key Optimization Techniques
Developers are encouraged to limit eth_calls as much as possible. Several techniques can help achieve this:
- Cache smart contract data: Instead of making repeated requests for the same information, store commonly accessed data directly in the subgraph after the first call.
- Leverage event data: Many smart contracts emit events that already contain the information needed. Using event logs reduces the need to query contract state directly.
- Perform calculations inside the subgraph: Compute values within the subgraph mapping logic rather than fetching them repeatedly from the blockchain.
A Practical Example
Consider an NFT subgraph tracking token mints and metadata. Traditionally, developers might call the contract every time a token is minted to retrieve details such as the collection name or symbol. By caching these values after the initial retrieval, subsequent eth_calls become unnecessary. This simple adjustment can lead to a noticeable improvement in indexing speed.
Looking Ahead
With ongoing advancements in technologies like Firehose and Substreams, The Graph Protocol continues working toward a more robust and high-performance decentralized data ecosystem. Reducing eth_calls is a practical step toward faster, more efficient indexing — ultimately benefiting both developers and Web3 users.


























