A nest has exactly one config file: nuthatch.toml. init generates it from a contract address; you
edit it to add contracts, events, factories, and the optional compliance and webhook stages. Everything
else in a nest (schema.json, llms.txt) is derived from it - regenerate with nuthatch schema.
The shape
[nest]
name = "usdc"
chain = "mainnet"
chain_id = 1
rpc_urls = ["https://your-rpc", "https://a-fallback-rpc"]
[[contracts]]
alias = "usdc"
address = "0xA0b86991c6218b36c1D19D4a2e9Eb0cE3606eB48"
start_block = 6082465 # auto-detected at init
abi = "abis/usdc.json"
events = ["Transfer", "Approval"] # empty = index every event the ABI defines
[nest]
| Field | Meaning |
|---|---|
name | The nest’s name (used for the served surface and logs). |
chain | The chain name, e.g. mainnet, arbitrum-one, base. |
chain_id | The chain id, e.g. 1, 42161, 8453. |
rpc_urls | RPC endpoints, tried in order with round-robin failover. Point at your own node. |
[[contracts]]
One block per contract. Repeat it to index many contracts in one nest.
| Field | Meaning |
|---|---|
alias | Short name - the table prefix ({alias}__{event}). |
address | The contract address. |
start_block | Deployment block (auto-detected at init); omit to backfill from a recent tip offset. |
abi | Path to the vendored ABI, relative to the nest dir. |
events | Optional allowlist of event names to decode. Empty indexes every event the ABI defines. |
The
eventsallowlist is how a nest indexing e.g. a token keeps onlyTransferinstead of millions of irrelevant rows. An event name here that the ABI doesn’t define is a config error, caught when the decode registry is built.
Optional stages
nuthatch.toml also carries the optional layers, each documented on its own page:
[[templates]]+[[factories]]- index dynamically discovered children. See Factories.[screening]+[flags]+[[alerts]]- the compliance pack. See Compliance pack.[[webhooks]]- POST sealed rows to a URL. See Webhooks.
Absent stages cost nothing - a nest with none of them is a plain, fast log indexer.
Next
- ABIs, events & tables - how config becomes SQL tables
- Authored SQL views - add derived logic
- Configuration reference - every field,
nuthatch.tomlandroost.toml