Install
Get Nuthatch running.
Embedded mode is a single static binary with no external services. Pick whichever
route you trust. Every one lands you at the same place: nuthatch init,
then nuthatch dev.
v2.2.0 is out. This one is about what happens when the data underneath you
is not perfect. A sealed segment that has gone bad no longer takes the whole query down with
it: nuthatch serves the rest of the table and tells you it did, naming the affected
tables in /sql, on the nuthatch sql command line, and through MCP.
A caveat you have to notice is worth more than a query that simply fails. Blocks-only nests -
the ones that index chain structure rather than a contract - now start, derive one row per
block, and no longer ask an endpoint for every log on the chain. And the per-nest memory
estimate was measured rather than guessed: it had been about 13x pessimistic, which was
refusing mounts that fit comfortably.
2.0 is still the one release that moves data on disk, and it ships the command
that does it: nuthatch migrate moves files and rewrites a config, and never
re-indexes - 0.259s on a real two-nest deployment. Read the
upgrade notes first.
Prebuilt binaries ship for macOS (Apple Silicon) and Linux x86_64.
Nuthatch follows semantic versioning on the 2.x line under a published
stability contract - see also the
roadmap. A Homebrew tap, an OCI image, and detached release signatures
are still on the way; other platforms build from source with cargo for now.
Shell script
Detects your platform, downloads the matching static binary from the latest GitHub release, verifies its SHA-256 checksum, and puts it on your PATH. Covers macOS Apple Silicon and Linux x86_64; other targets fall back to cargo.
curl -fsSL https://nuthatch-indexer.com/install.sh | sh Piping to a shell asks for trust. Read it first: the script is short and on GitHub, or download it, read it, then run it.
Cargo
Build from source straight from the repo. The toolchain pin is required, not advisory: rust-toolchain.toml does not apply to cargo install --git, and rustc 1.97 hits a dbsp ICE that installs nothing. No prebuilt binary in the trust path.
cargo +1.95.0 install --git https://github.com/nightswatchhq/nuthatch nuthatch
Or grab a tarball and its .sha256 yourself from the
latest GitHub release.
Homebrew planned
macOS and Linuxbrew, once a tap is published.
brew install nuthatch Docker
Embedded mode needs no Docker at all - that is rather the point. Images are published for anyone who wants one, and for scaled mode, where Postgres replaces the embedded hot store across a fleet.
docker run --rm -v $PWD/nest:/nest ghcr.io/nightswatchhq/nuthatch:latest dev --dir /nest :latest is the embedded build. :2.2.0-scaled carries the Postgres
driver and the worker, control and serve --hot-store
commands. The compose files live in the
repo.
First run
Point it at a contract and go. Public RPC defaults; no key required.
nuthatch init 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 --chain mainnet nuthatch dev init resolves each contract's ABI (proxies included), scaffolds a nest, and
writes a schema.json, an llms.txt, and a Claude Code skill. Pass
several addresses to index a multi-contract nest, and --chain arbitrum-one or
--chain base for the L2s. dev follows the tip and serves
/tables, /table/{name}, read-only /sql,
balances, /metrics, and MCP on one local endpoint.
Verify what you downloaded
Every release binary ships with a SHA-256 checksum file. The shell script checks the sum for you; do it yourself for the manual download.
sha256sum -c nuthatch-<target>.tar.gz.sha256 Releases ship checksums but not yet detached signatures. Minisign and cosign signing, with a published key, land with the remaining release engineering - see the roadmap. Until then, verify the checksum.