Research / Understanding the data

Bitcoin Node Atlas Methodology

How Atlas discovers observed Bitcoin addresses, checks reachability, counts records and presents approximate country and software data.

Discovery is a sample

The crawler starts from DNS seed candidates and can request advertised addresses from a bounded number of peers when getaddr is enabled. Advertisements are leads, not evidence that a node is online. Discovery depends on seed responses, peers contacted and network access. It cannot enumerate every private, outbound-only or intermittently connected node.

Reachability is a point-in-time handshake

A reachable record reflects a successful Bitcoin version/verack handshake from the crawler's vantage point. A failure can result from routing, a firewall, timeouts, peer capacity or an offline endpoint. It is not proof that software is permanently absent. The stored status and the age of the last check should be read together.

Count populations carefully

The homepage observed-address statistic counts distinct address-and-port pairs from crawl observations. The country breakdown counts node records, including unknown geography; these populations can differ. Versions count records whose current status is reachable. A device may have multiple public endpoints, and endpoints do not identify independent operators.

Geography is approximate

Optional MaxMind GeoIP enrichment associates public IP addresses with approximate countries and networks. Hosting, VPNs and database errors can affect these estimates. Map coordinates are aggregated and rounded to one decimal place; the map API returns up to 500 point groups. Map totals describe those displayed groups, not every geolocated record. Tor addresses are not assigned a physical map location.

Time and freshness

The API's last_crawl_time field is the most recent observation or node-check timestamp. It can include a manually submitted check and does not certify a successful completed crawler run. Pages label it as latest observation or check. Aggregate frontend reads may be cached for about a minute. Last-checked values describe individual records, not a synchronized global census.

Reproducibility and limits

Use the API with bounded pagination and preserve timestamps and query parameters when comparing observations. The project does not yet publish a historical aggregate snapshot series. Changes in sampling, crawler connectivity or GeoIP coverage can change counts without a matching change in the underlying Bitcoin network.

Continue with Bitcoin node statistics, inspect observed node records, or use the public data API. The data glossary defines the labels used throughout Atlas.

Explore next