A DePIN network's node count is the number that ends up in research notes, token models and sector dashboards. Usually it arrives as one integer with nothing to compare it against. Of the 372 networks we currently hold live data for, 4 publish both a cumulative total and a currently-live count on public endpoints that need no key. Where both exist, they diverge by 2.4× to 214×.
Generated 2026-09-14T07:38:07Z · every row re-fetched from the network's own API during generation
| Network | Headline / cumulative | Currently live | Ratio | Not live | Source |
|---|---|---|---|---|---|
| Titan Network TITAN |
2,991,926 total_node_count |
13,950 online_node_count |
214.5× | 99.53% | check it yourself →
Titan publishes the ratio itself as t_node_online_ratio. |
| Sia SC |
87,078 totalHosts |
520 activeHosts |
167.5× | 99.40% | totalHosts → activeHosts → Two endpoints of the same public API. The block payload also carries 3,564,634 failed contracts against 1,609,732 successful — 69% of all Sia storage contracts have failed. |
| Storj (us1 satellite) STORJ |
123,816 total_nodes |
32,494 active_nodes |
3.8× | 73.76% | check it yourself →
The same payload also carries disqualified, exited, offline and suspended counts, which sum exactly to the total. |
| io.net IO |
2,551 total |
1,078 active |
2.4× | 57.74% | check it yourself →
Devices, not nodes — io.net's unit is a GPU device. The same payload breaks both figures down per GPU model. |
Every number above is published by the network itself, on an endpoint that needs no
key and no account. Titan even publishes the ratio directly, as
t_node_online_ratio. These operators are the transparent end of the market
— they are legible precisely because they ship both figures.
The gap opens one hop downstream. An aggregator that carries
total_nodes and drops active_nodes destroys the distinction,
and from there the larger number travels alone. The other
368 networks we track publish a single count, so for those
the question cannot be asked at all from public data — which is not an accusation
against them either, just the shape of what is available.
No key, no account, no Kairos in the path. If a value below disagrees with what we publish, we are the stale one — tell us and we will publish the correction with the timestamp of the miss.
# TITAN — expect total_node_count ≈ 2,991,926, online_node_count ≈ 13,950 curl -s https://test1.titannet.io/api/v2/get_index_info # SC — expect totalHosts ≈ 87,078 curl -s https://api.siascan.com/metrics/block # SC — expect activeHosts ≈ 520 curl -s https://api.siascan.com/metrics/host # STORJ — expect total_nodes ≈ 123,816, active_nodes ≈ 32,494 curl -s https://stats.storjshare.io/nodes.json # IO — expect total ≈ 2,551, active ≈ 1,078 curl -s https://api.io.solutions/v1/io-explorer/network/inventory-aggregated
Kairos Signal carries both numbers, on every network where both exist, with
source, as_of and a verify_url on each value.
Nothing is estimated, back-filled or zero-filled: a metric that stops flowing goes
absent, never to zero. That is the entire product, and this page is the smallest
honest demonstration of it.