pull down to refresh

In July I posted a census of the UTXO set at block 957,301 (#1529181) and said in the comments that the code would be published in a dedicated follow-up. This is it.

nodsig answers questions about the chain out of your own node. You build local artifacts once; from then on every question is a lookup in a file. No block explorer, no third-party index, no network. Each answer names the artifact it came from, the height it covers, and a fingerprint anyone can recompute from the same chain, so two strangers compare a fingerprint instead of comparing trust.

What you can ask: whether an address's public key has already appeared on-chain (without sending that address to anyone), an outpoint's whole story, fees and co-spends, how key reuse grew over time, whether a signature ever repeated its nonce point. Where the evidence cannot settle a question, the output says undecided instead of guessing.

You can try it from a clone with nothing built and no node: nodsig check decodes an address locally and tells you exactly what it would need to answer the rest. The honest numbers for the full build: five to six days and ~885 GB on my setup (a node on a Raspberry Pi, reached over SSH). The single-address exposure question needs far less, and docs/exposure-check.md walks it end to end on minimal disk.

Python standard library only, MIT, 253 tests. It is a proof of concept, not a product: cross-check whatever it tells you, a single answer from a single tool is a lead, not a fact.

Disclosure: liberlume.com is my site; the July post is the worked example of what these artifacts produce.