Onchain data is not app-ready. To query "all Uniswap swaps by this user in the last 30 days" you need an indexer: software that processes blocks, extracts relevant events, and serves them via API. Three tools dominate.
The Graph
- Original decentralized indexer.
- Developers write "subgraphs" in TypeScript that map events to a schema.
- Indexers stake GRT to run the subgraph.
- Query via GraphQL.
- Hosted service (subgraph.thegraph.com) for testing; decentralized network for production.
Envio
- Fastest indexer in the ecosystem. Sync a full subgraph in minutes.
- TypeScript/JavaScript or ReScript.
- Managed hosting.
- Better DX than The Graph for many teams.
Goldsky
- Enterprise-grade managed indexing.
- Real-time streaming to your database (Postgres, ClickHouse).
- Mirrors The Graph subgraphs plus custom pipelines.
When to use each
- The Graph. Production apps that value decentralization; existing subgraph you want to deploy.
- Envio. New app that needs fast iteration and cheap sync.
- Goldsky. Enterprise where you need custom pipelines and SLAs.
Alternative: run your own
Ponder, Rindexer, or custom scripts on your own database. More control, more ops.
Where indexers fit
- DEX aggregators (real-time price queries).
- Wallet apps (transaction history).
- Analytics dashboards.
- Games (leaderboards, achievements).
Where they don't
- Ad-hoc research (use Dune).
- Small teams that can afford slower Etherscan API calls.
Koinlytics