Skip to content

Blockchain Data Indexing

In short

Blockchain data indexing turns raw on-chain events into structured data your app can query instantly. Subgraphs on The Graph cover most cases; real-time, cross-chain, or high-volume products need Substreams, Ponder, Subsquid, or a custom indexer, and we build and operate all of them.

Top-3
indexer in The Graph
2019
running production indexers since
60+
networks we operate infrastructure on
1M+
developers on Solhint, which we maintain
Trusted by teams building on-chain

Blockchain data indexing is the work of turning raw on-chain activity, blocks, transactions, events, and contract state, into structured data an application can query in milliseconds. A node can return the current value of a variable, but it cannot answer "every trade this wallet made last month" or "the top 20 pools by volume today" without replaying years of history block by block, which no frontend can do at request time.

An indexer closes that gap: it reads the chain as it is produced, transforms each event into the shape your product needs, and serves it over a fast API. Protofire has built and operated that layer since 2019, as a top-3 indexer in The Graph ecosystem and the maintainer of the open-source subgraph-toolkit.

The default tool is a subgraph on The Graph, and for most dapps it is the right one. But indexing is not a single product. Real-time trading data, cross-chain aggregation, heavy analytical queries, and very high-throughput chains often call for Substreams, a Ponder or Subsquid indexer, or a purpose-built indexer in Rust or TypeScript.

We work across all of them, and because we run indexers in production rather than only writing them, we pick the approach that still holds up when your data grows, not the one that is quickest to demo.

Indexing is a pipeline, not a single query

We build and operate each stage, from raw chain data to the API your app reads.

01

Source

Read blocks, transactions, events, and traces from the chain as it is produced.
02

Transform

Decode and map raw events into the entities and relationships your product queries.
03

Store

Index into a store tuned for your query shape, whether GraphQL, SQL, or a custom API.
04

Serve

Expose a fast, versioned API to your frontend and backend, with pagination and filters.
05

Operate

Monitor indexing health, handle chain reorgs and upgrades, and keep the endpoint live.
01

What is blockchain data indexing?

A blockchain node is built to reach consensus, not to answer product questions. It can give you the state of a contract right now, but historical and aggregated queries, a wallet's full trade history, volume per pool, holders over time, would mean scanning every block since the contract was deployed.

That is far too slow to run when a user loads a page, and public RPC endpoints rate-limit exactly this kind of request. Indexing moves that work off the critical path: the data is computed once as the chain advances and stored ready to read.

02

The Graph, Substreams, Ponder, or a custom indexer?

For most dapps, a subgraph on The Graph is the right default: it is well understood, decentralized, and quick to ship, and the ecosystem tooling is mature. We are a top-3 indexer in The Graph and maintain subgraph-toolkit, the open-source helper library many teams use to write cleaner subgraph mappings, so this is our deepest capability. If a subgraph fits, we build it, deploy it, and keep it healthy, and we do not push you toward something more complex than you need.

03

What do we deliver?

Production subgraphs on The Graph: schema design, mapping logic, deployment to the decentralized network or a hosted setup, and ongoing maintenance as your contracts change. For the full detail on our Graph-specific work, see subgraph development.

04

Who is blockchain data indexing for?

New L1 and L2 networks need an indexing layer before applications can be built on them, the same way they need oracles and explorers; we deploy it so builders arrive to a chain where querying on-chain data already works. DeFi and app teams come to us when their subgraph cannot keep up, when a feature needs real-time or cross-chain data, or when they would rather have the data layer built and operated by a team that has done it many times than pull their own engineers onto it. Protocols with analytics and reporting needs use us to turn raw activity into the dashboards, feeds, and APIs their product, their users, and their internal teams depend on. If your engineers can write a subgraph but you want the schema design, scaling, and operations done right the first time, that gap is what we close.

05

A top-3 The Graph indexer since 2019

Protofire is a blockchain development company with 250+ shipped projects across 60+ networks and 95+ protocols. On data specifically, we have run indexing infrastructure since 2019 as a top-3 indexer in The Graph ecosystem, we maintain the open-source subgraph-toolkit used across the ecosystem, and we build custom indexers in Rust and TypeScript for teams that have outgrown subgraphs.

Our broader credentials: we maintain Solhint, the Solidity linter used by 1M+ developers; we are an official Safe Guardian, and Protofire-deployed networks secure $2B+ in TVL across 120+ EVM networks; and we run the node and RPC infrastructure that indexers read from, so the whole data path is under one roof. When we recommend an indexing architecture, it is one we know how to operate, because we already run it.

A node can only report the current state. An indexer answers questions about the full history, every trade a wallet made, volume per pool, holders over time, which is why almost every dapp interface runs on one.

FAQ

What is blockchain data indexing?
Blockchain data indexing is the process of reading raw on-chain data, blocks, transactions, events, and contract state, and transforming it into structured data an application can query quickly. Blockchains are optimized for consensus, not for queries: a node can tell you the current state of a contract, but answering a historical or aggregated question, such as every trade a wallet made or the largest pools by volume, would mean scanning the entire history block by block, which is far too slow to do when a page loads. An indexer does that work continuously as the chain advances and stores the result ready to read, so an application can fetch it in milliseconds over an API instead of making hundreds of RPC calls. It is foundational infrastructure: almost every dapp interface, dashboard, and analytics product depends on an indexing layer underneath it.
Do I need a subgraph or a custom indexer?
It depends on your latency, query complexity, and throughput, and we recommend the fit rather than defaulting to one tool. A subgraph on The Graph is the right choice for most dapps: it is mature, decentralized, quick to ship, and well supported, and as a top-3 Graph indexer it is our deepest capability. You move beyond a subgraph when you need data closer to real time than a subgraph provides (order books, perps), when your queries involve heavy analytical joins and aggregations that are awkward in GraphQL, or when a very high-throughput chain outruns subgraph indexing speed. In those cases the answer is Substreams, a Ponder or Subsquid indexer with a SQL database, or a purpose-built pipeline. We assess the trade-offs against your product and build whichever is right, including a mix.
When do subgraphs stop being enough?
Three walls tend to appear. The first is latency: subgraphs are excellent for most reads but not for products that need sub-second freshness, such as trading interfaces. The second is analytical complexity: once queries need large joins, windowed aggregations, or cross-entity math, a SQL-backed indexer like Ponder or Subsquid is a better fit than GraphQL. The third is throughput: on a very busy chain, subgraph indexing can fall behind the head of the chain, so the API serves stale data. When any of these appears, we move the workload to Substreams for parallelized extraction or to a custom indexer with a store and API tuned for the query pattern, while keeping the parts of the system that a subgraph still serves well.
Can you index data across multiple chains?
Yes. A single product often needs the same view of data across several chains, positions, balances, or activity unified into one API rather than one endpoint per network. We build cross-chain indexers that normalize data from multiple chains into a single schema, and when the product also moves state or messages between chains, we design the indexing layer together with the cross-chain messaging layer so the two stay consistent. This is common for multichain dapps, portfolio and analytics tools, and any application that has to present one coherent picture across networks.
Are you an indexer on The Graph?
Yes. We have operated indexing infrastructure in The Graph ecosystem since 2019 and are a top-3 indexer, and we maintain the open-source subgraph-toolkit that many teams use to write their subgraph mappings. That means we work on both sides of the network: we run the indexing infrastructure, and we build the subgraphs that query it. For teams, the practical benefit is that the people designing your subgraph have also operated indexers at scale, so the schema and mapping are built to index efficiently rather than just to compile.
How does indexed data reach my app?
Through an API we build and operate. Once the indexer has transformed on-chain events into your entities, we expose them over a fast, versioned API, GraphQL, REST, or SQL, with the pagination, filtering, and access controls your product needs. Your frontend and backend then read from that endpoint instead of talking to a node directly, which is faster, more reliable, and not subject to public RPC rate limits. We also build the dashboards and data feeds on top, so the same indexed data can drive both the user-facing product and internal analytics. We monitor the endpoint and handle reorgs and chain upgrades so the data stays correct without your team operating it.

Reviewed by Luis Medeiros, Field CTO at Protofire. Last reviewed: July 2026.

Book a call with Alejandro Losa

Schedule a call with our Web3 Solution Architect to receive practical recommendations and a prompt proposal for upgrading your solution.

Protofire 2026. All rights reserved

Message us on Telegram