Checked against the network
At Arbitrum One block 510,395,917 (30 September 2026), a Nuthatch nest built only from on-chain events reported 14,415 active allocations on The Graph's SubgraphService. The Graph Network subgraph reports the same 14,415 allocations at that block, matched by allocation ID with none missing on either side.
Lodestar, an analytics dashboard for The Graph Protocol on Arbitrum One, ran on nests: it served live panels from self-hosted Nuthatch nests instead of The Graph gateway until it went offline on 13 October 2026. How it ran.
The self-hosting argument
Saying that Nuthatch competes with The Graph is a little like saying that graph-node does. Anyone has always been free to run their own graph-node, Postgres and IPFS and index their own subgraph on their own hardware, and nobody has ever called that a rival protocol. It is the protocol's own software, self-hosted. Nuthatch is the same shape with the operational weight taken out: one binary, an embedded store, no Docker, nothing to rent. A team that runs a nest for the contracts it wrote is not a lost customer of the network, any more than a team running its own graph-node is. Most of them were never going to buy that index from anyone.
The two projects also agree about the thing that matters. The Graph's answer to a centralised data provider is to decentralise who serves you. Nuthatch's answer is that, for the contracts you own, you need not be served at all. Both are ways of not trusting one company's endpoint. Neither is wrong, and they are not exclusive: run your own nest for the protocol you build, and query the network for the contracts you do not.
The front page carries a comparison table with The Graph in it, and it states facts rather than a verdict.
Where they part ways
Honesty about the seam is the point of this page, so here is what Nuthatch is not. It
is not a network. There is no market, no curation, no query fees in the binary, and no
dispute process; verification means re-executing deterministic code and getting the
same bytes, which is a strong property for one operator and a different property from
a decentralised one. It does not speak full GraphQL: since 3.7.0 it carries a partial read surface for
subgraph-shaped clients, exact for event-shaped fields and a named refusal for the rest,
and it is parked. The default binary has no GraphQL route; since
4.11.0 every release attaches a separate nuthatch-graph-<target>
download that serves it. Contract reads and IPFS documents are pinned and verified rather than fetched
freely, so a subgraph that leans on either needs its query surface reviewed rather than
assumed. And it does not pretend to serve a hundred thousand subgraphs to strangers
from one box. If your application reads from protocols you do not own, across chains
you do not run nodes for, the network is the right tool, and Nuthatch will not argue.
What comes next
Nuthatch does not run a hosted nest service. The GraphQL read surface is parked: an analytics client cannot adopt it unmodified, because GraphQL refuses a whole query for one field it cannot answer.
One exception ran from 6 to 13 October 2026: as BNB Chain and Polygon subgraphs moved
onto the network, Nuthatch served stopgap nests for deployments no indexer served, so
the apps querying them did not go dark in the meantime. Each was the stock
nuthatch-graph download run as any operator would run it: no billing, no
accounts, no platform. A stopgap answered the fields a subgraph derives from decoded
events exactly and refused the rest by name, so it was never a replacement for the
subgraph, and its handback said how to go back to the network once an indexer
allocated. The point was always to hand the subgraph back, not to keep its users.
The stopgaps were withdrawn on 13 October 2026, along with Lodestar and the rest of
the Graph work. The record and
the BetSwirl BNB Chain handback
remain.
GraphOps, an indexer and core developer on The Graph, is a design partner: its feedback is what led to maintained entities.
Run your own nest for the contracts you own. Query the network for everything else. Install it, or read the data service.