The Graph: where do I start?

Three products cover overlapping ground, and which one you want depends on your chain and your data. Before building an index, check whether one already exists.

Examples:

Each column is one network. Hover to identify it, click to filter this page.

Try it without a key

Several Token API endpoints are open. No account is needed to run these.

Get a key

There are two credentials and they are not interchangeable. Using the wrong one is the most common early mistake.

Subgraph Studio API key

Authenticates GraphQL queries against gateway.thegraph.com. This is what the subgraph examples below need. The free tier covers 100,000 queries a month. thegraph.com/studio

The Graph Market token

A Bearer token for api.pinax.network, the REST Token API. Separate system, separate credential. thegraph.market

Find what exists

The search box covers 0 contract addresses and 0 subgraphs. A match means something already indexes that contract.

These entries record what existed and what a single query returned on 2026-09-14. That is not a guarantee any of them work now, and lifetime query fees say nothing about current health. Run the freshness probe before relying on one.

Choose a service

What do you need?

Build

If nothing covers your case, build it. For a contract you deployed yourself, nothing can already exist, so this is the expected path.

For full-chain scans, parallel backfills, or a sink into your own database, use Substreams instead of a subgraph — a subgraph makes a single sequential pass. Reuse before writing: The Graph's docs carry a section titled Reuse Existing Substreams Before Building, and published packages exist from StreamingFast, Pinax and TopLedger.

Agent skills for this work: substreams-dev for manifests and module graphs, substreams-ethereum or substreams-solana for decoding, substreams-sql and substreams-sink-deploy-local for databases, and substreams-convert to port a subgraph you already have.

Check field values before trusting them. Ranking by reserveUSD on a Uniswap-V2-style subgraph returns untracked pairs reporting roughly 8.8×1033 USD against zero volume; rank by trackedReserveETH. The same applies to totalValueLockedUSD on V3-style subgraphs, which is inflated by illiquid pools. Aave's totalValueLockedUSD mirrors deposits rather than netting borrows, and its profitUSD has been wrong by a factor of about a million.

Coverage

Which networks each service reaches, from The Graph's networks registry. Filtered by the chain selector above.

NetworkIDSubgraphsSubstreams FirehoseToken API

For agents

This page is a view over four data files. An agent should read the files rather than parse the page. They follow the same convention the Token API uses at /llms.txt and /SKILL.md.

FileContentsRows

Look a contract up in contracts.json first; an entry carrying subgraphIds is already indexed. Read the chain's service flags from chains.json, evaluate routes.json in order against your chain and goal, then read the catalogue entry's fieldWarning and probe freshness before using it.

# is this contract already indexed?
curl -s ./contracts.json | jq '.contracts["0x420dd…ce40da"]'

# rules that apply to one goal
curl -s ./routes.json | jq '.rules[] | select(.when.goal[]? == "dex")'

# subgraphs on one chain, most-used first
curl -s ./catalog.json | jq '[.entries[] | select(.chain=="base")] | sort_by(-.queryFeesGrt)'

These files are served from this origin with Access-Control-Allow-Origin: *, so any agent can fetch them directly, including from a browser. They are plain static JSON — no key, no rate limit, no scraping.