Blog
Field notes
Real deployments and the scar tissue from them - what it's actually like to run your own indexer in production.
-
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.