Blog
Field notes
Real deployments and the scar tissue from them - what it's actually like to run your own indexer in production.
-
Monad is built in. Here is what that means, and the first nest on it.
Nuthatch now indexes Monad out of the box: one binary, one command, and a chain that does a block every 300 milliseconds becomes SQL tables on your own machine. The first real nest on it covers Perpl, the exchange that is seventy percent of Monad's traffic and had no public index until now.
-
Keeping DuckDB
We spent August asking whether Nuthatch could drop DuckDB, and every C++ dependency with it, without sacrificing anything. The answer is no - and two of our own published benchmarks turned out to be wrong in DuckDB's disfavour.
-
Nuthatch 3.0: make the answer arrive with the block
Nuthatch 3.0 makes authored incremental entities stable: a nest can maintain a bounded keyed relation as blocks arrive, instead of re-running one expensive aggregate for every reader.
-
Where Nuthatch uses WebAssembly, and where it refuses to
An indexer with a WASM runtime usually means mappings. Nuthatch runs none. WebAssembly is used here for exactly one thing - a capability boundary you can read off a component's type - and one component actually ships inside the binary.
-
We said nuthatch would never call a contract. It does now.
Over 70% of subgraphs use eth_call, and the rest of them read IPFS. nuthatch 2.6.0 does both, without giving up the determinism that was the reason for refusing in the first place.
-
No subgraph? No problem
When a subgraph is down, the data does not have to disappear. A Nuthatch nest can preserve the on-chain part of the path as a self-hosted SQL fallback.
-
Nuthatch is now a Graph Horizon data service
A reproducible Nuthatch nest now has a paid, TAP-gated route on Arbitrum One. Here is the NID, the gateway, the first real settlement, and the parts we have deliberately not pretended are finished.
-
Why a Nuthatch nest has two identities
A Nuthatch nest is an immutable package, but an edit should not automatically mean a full re-index. Here is how NIDs, data identity, adoption, and shared segments fit together.
-
Upgrading a live indexer, three versions in one go
The nuthatch behind Lodestar's dashboard had been on 0.3.0 since it shipped. We bumped it to 0.6.0 while it was serving real traffic - three minor versions in one swap. This is the operator's log, and the good news is that it was an anticlimax.
-
The Graph put Nuthatch in their hackathon bounty
ETHGlobal Lisbon's $7,000 Best AI Tooling track names Nuthatch as an accepted data backend, alongside Subgraph Studio. What it means, and a field guide for anyone building on the bird this weekend.
-
No eth_calls in nuthatch: what you derive instead
Over 70% of subgraphs call eth_call to read contract state. nuthatch's data path makes none, on purpose, and gives you recipes that derive the same values from indexed events, byte-for-byte and free.
-
Index Uniswap V3 yourself: for free, in under an hour, without writing code
Self-host a full Uniswap V3 index, every pool, every swap, prices and volume, with one Rust binary, one config file, and SQL. No graph-node, no gateway, no query fees.
-
We put a live dashboard on our own indexer. Here's the box.
Nuthatch stopped being a demo today. A real public dashboard - Lodestar - now serves two of its panels from a single nuthatch binary running on one small VPS of ours. This is the operator's log: the nests, the backfill, the box, the 86 MB, and the runtime deadlock we had to root-cause to get there.