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.
| Network | ID | Subgraphs | Substreams | Firehose | Token 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.
| File | Contents | Rows |
|---|
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.