Generated 2026-09-02T19:26:28Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for NODE: 8,289 observations · 43 distinct series · 4 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 18:58:01 · every one of the 8,289 rows carries a verify_url · 37 series refreshed in the last 24h (762 fresh rows). Nothing on this page is cached, estimated, or remembered.
4 source families feed this network's ledger. Every row they wrote carries its own source, as_of and verify_url; this table is the live rollup of that. NodeOps does not publish a first-party stats API — instead the estate collects four upstream families for it: CoinGecko's market series for NODE, DefiLlama's fees summary for nodeops (the all-time fees counter and its rolling windows), NodeOps-app GitHub activity, and Blockscout's counters for the NODE token contract itself (0x2f714d7b9a035d4ce24af8d9b6091c07e37f43fb on Ethereum, queried through eth.blockscout.com). The estate's own first-party collector re-snapshots the fee counters daily (depin_first_party).
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| CoinGecko /coins/markets | 7,026 | 24 | 7,026 | 2026-08-09 17:15:20 → 2026-09-02 18:49:30 | sample origin ↗ |
| DefiLlama /overview/fees | 1,053 | 7 | 1,053 | 2026-08-09 17:17:15 → 2026-09-02 18:58:01 | sample origin ↗ |
| github | 114 | 6 | 114 | 2026-08-09 23:47:26 → 2026-09-01 18:29:02 | sample origin ↗ |
| evm_blockscout | 96 | 6 | 96 | 2026-08-09 23:27:47 → 2026-09-02 12:37:02 | sample origin ↗ |
The ledger query ran during generation and returned 0 rows for NODE — and NODE's zero is a measured negative: the daily archive this estate holds for NODE — 694 rows over 24 snapshots (2026-08-09 → 2026-09-01) — contains five cumulative-class series the detector watches, every snapshot pair of all five was diffed, and every pair is monotonic. Real counters were watched; none was rewritten. Where a sibling network (AR) shows a BLOCKS restatement (1,988,930 → 1,702,206, on the estate-wide ledger below), NODE's watched counters show nothing of the kind. Zero here is the live query result plus the measured trail below, not a gap — the ledger itself is at /v1/revisions?symbol=NODE (the same query this page ran, served live), and a restatement would appear on this page the day the detector records one. /v1/revisions?symbol=NODE cross-check passed: the served API reports 0 row(s), matching the ledger count rendered on this page.
The detector diffs every daily snapshot of every cumulative-by-construction series. Below is the live intersection of the estate detector's cumulative watchlist — imported directly from propintel/revision_ledger.py (75 declared names, so this page can never drift from the detector) — with what the daily archive holds for NODE. Five watched series are held and were fully diffed; none produced a backward pair. That is the structural content of the zero above: watchable counters exist, and they are clean.
| Watchlist series held | Rows | Days | Source |
|---|---|---|---|
DL_FEES_ALLTIME_USD | 24 | 24 | depin_first_party |
contract_gas_used_total | 10 | 10 | evm_blockscout |
contract_transactions_total | 10 | 10 | evm_blockscout |
fees_alltime_usd | 10 | 10 | DefiLlama /overview/fees |
token_transfers_total | 11 | 11 | evm_blockscout |
These are the actual counter trails the detector diffed for NodeOps, rendered live from the archive. Each is a series that cannot decrease unless upstream rewrote history — which is exactly what makes their smooth monotonicity the proof behind the zero, and the same trails where a GRT/OVPP/EIGEN-style restatement would appear if it ever happened. The fee counters come from DefiLlama's fees summary for nodeops (the first_party_api family) re-snapshotted daily by the estate's own depin_first_party collector; the contract counters come from Blockscout's counters endpoint for the NODE token contract. A note on the fee counter's two spellings: DL_FEES_ALLTIME_USD (depin_first_party) and fees_alltime_usd (DefiLlama /overview/fees) are snapshots of the same upstream counter taken hours apart each day — the table below renders the value of whichever wrote last for each snapshot date, and the two agree on every overlapping snapshot date.
DL_FEES_ALLTIME_USD / fees_alltime_usd — the NodeOps lifetime protocol fees counter (USD, all-time):
| Snapshot date | Lifetime fees (USD) | Source |
|---|---|---|
| 2026-08-09 | 799,617 | depin_first_party |
| 2026-08-10 | 799,632 | depin_first_party |
| 2026-08-11 | 799,829 | depin_first_party |
| 2026-08-12 | 800,043 | depin_first_party |
| 2026-08-13 | 800,058 | depin_first_party |
| 2026-08-14 | 800,088 | depin_first_party |
| 2026-08-15 | 800,138 | depin_first_party |
| 2026-08-16 | 800,390 | depin_first_party |
| 2026-08-17 | 800,390 | depin_first_party |
| 2026-08-18 | 800,435 | depin_first_party |
| 2026-08-19 | 800,835 | depin_first_party |
| 2026-08-20 | 800,835 | depin_first_party |
| 2026-08-21 | 801,001 | depin_first_party |
| 2026-08-22 | 801,031 | depin_first_party |
| 2026-08-23 | 801,463 | depin_first_party |
| 2026-08-24 | 803,306 | depin_first_party |
| 2026-08-25 | 803,306 | depin_first_party |
| 2026-08-26 | 803,306 | depin_first_party |
| 2026-08-27 | 803,411 | depin_first_party |
| 2026-08-28 | 803,459 | depin_first_party |
| 2026-08-29 | 803,532 | depin_first_party |
| 2026-08-30 | 803,602 | depin_first_party |
| 2026-08-31 | 804,272 | depin_first_party |
| 2026-09-01 | 804,388 | depin_first_party |
token_transfers_total — the NODE token contract's lifetime transfer counter (Blockscout), the series class that produced real restatements for OVPP, AUKI, R1 and SOGNI elsewhere in the estate:
| Snapshot date | Lifetime token transfers | Source |
|---|---|---|
| 2026-08-22 | 14,219 | evm_blockscout |
| 2026-08-23 | 14,221 | evm_blockscout |
| 2026-08-24 | 14,230 | evm_blockscout |
| 2026-08-25 | 14,245 | evm_blockscout |
| 2026-08-26 | 14,252 | evm_blockscout |
| 2026-08-27 | 14,274 | evm_blockscout |
| 2026-08-28 | 14,286 | evm_blockscout |
| 2026-08-29 | 14,291 | evm_blockscout |
| 2026-08-30 | 14,323 | evm_blockscout |
| 2026-08-31 | 14,325 | evm_blockscout |
| 2026-09-01 | 14,341 | evm_blockscout |
contract_transactions_total — transactions touching the NODE token contract (Blockscout):
| Snapshot date | Contract transactions | Source |
|---|---|---|
| 2026-08-23 | 11,476 | evm_blockscout |
| 2026-08-24 | 11,483 | evm_blockscout |
| 2026-08-25 | 11,496 | evm_blockscout |
| 2026-08-26 | 11,499 | evm_blockscout |
| 2026-08-27 | 11,499 | evm_blockscout |
| 2026-08-28 | 11,518 | evm_blockscout |
| 2026-08-29 | 11,530 | evm_blockscout |
| 2026-08-30 | 11,531 | evm_blockscout |
| 2026-08-31 | 11,564 | evm_blockscout |
| 2026-09-01 | 11,564 | evm_blockscout |
contract_gas_used_total — cumulative gas used at the NODE token contract (Blockscout):
| Snapshot date | Cumulative gas used | Source |
|---|---|---|
| 2026-08-23 | 587,624,012 | evm_blockscout |
| 2026-08-24 | 588,002,305 | evm_blockscout |
| 2026-08-25 | 588,662,635 | evm_blockscout |
| 2026-08-26 | 588,814,873 | evm_blockscout |
| 2026-08-27 | 588,814,873 | evm_blockscout |
| 2026-08-28 | 589,614,779 | evm_blockscout |
| 2026-08-29 | 590,170,307 | evm_blockscout |
| 2026-08-30 | 590,229,261 | evm_blockscout |
| 2026-08-31 | 591,966,354 | evm_blockscout |
| 2026-09-01 | 591,966,354 | evm_blockscout |
These series fall outside the detector's cumulative-by-construction class (NOT_TRULY_CUMULATIVE and plain gauges in propintel/revision_ledger.py): a drop there is a real population or market change, not upstream rewriting history. Publishing them as "revisions" would be exactly the fake-metric behaviour this product exists to eliminate.
| Series (gauge / revaluation) | Backward moves observed | Snapshot rows held |
|---|---|---|
DL_FEES_30D_USD | 14 | 24 |
DL_REV_30D_USD | 14 | 24 |
DL_FEES_7D_USD | 13 | 24 |
DL_REV_7D_USD | 13 | 24 |
fees_7d_usd | 10 | 17 |
fully_diluted_valuation_usd | 10 | 17 |
market_cap_usd | 10 | 17 |
price_usd | 10 | 17 |
DL_FEES_24H_USD | 9 | 24 |
DL_REV_24H_USD | 9 | 24 |
fees_30d_usd | 9 | 17 |
fees_1y_usd | 8 | 10 |
fees_24h_usd | 7 | 17 |
market_cap_change_24h_pct | 6 | 11 |
The task-level conflict check, run live: any (metric, timestamp) family where this estate recorded two or more different values. The query ran at generation and returned 0 groups in both depin_onchain and depin_daily — every (metric, timestamp) pair the estate holds for NODE carries exactly one value. Zero here is the live query result, not a gap; the archive kept every write it made, and none of them disagree.
Deduped on revision identity exactly as /v1/revisions dedupes it. This is the same feed a subscriber polls; it is rendered live from ClickHouse at generation, not copied from a snapshot. Each row is an upstream source replacing the value of a (network, metric, date) it had already published — after this estate recorded the original. The superseded value is retained, never deleted; that retention is the only reason a rewrite is detectable, and it is the part every overwriting vendor discards.
| First detected | Network | Metric | Was | Became | Δ | Kind | Provenance |
|---|---|---|---|---|---|---|---|
| 2026-09-02 01:15:01 | GRT | dl_fees_alltime_usd | 1,424,316 | 1,423,345 | -0.068% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-02 01:15:01 | GRT | fees_alltime_usd | 1,424,302 | 1,423,345 | -0.067% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-02 01:15:01 | OVPP | token_transfers_total | 1,356,749 | 1,354,903 | -0.136% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-01 23:34:07 | AR | blocks | 1,986,220 | 1,702,204 | -14.299% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:34:07 | AR | blocks | 1,980,116 | 1,702,204 | -14.035% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:34:07 | AR | blocks | 1,988,930 | 1,702,206 | -14.416% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:34:07 | AR | blocks | 1,982,176 | 1,702,204 | -14.124% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:34:07 | AUKI | token_transfers_total | 1,230,167 | 1,228,860 | -0.106% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-01 23:34:07 | EIGEN | fees_alltime_usd | 161,955,683.53 | 161,932,203.53 | -0.014% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-01 23:34:07 | GRT | fees_alltime_usd | 1,419,328 | 1,419,152 | -0.012% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-01 23:34:07 | GRT | fees_alltime_usd | 1,419,558 | 1,419,328 | -0.016% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-01 23:34:07 | R1 | token_transfers_total | 194,390 | 194,337 | -0.027% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-01 23:34:07 | SOGNI | token_transfers_total | 1,177,219 | 1,174,145 | -0.261% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-01 23:33:32 | GRT | dl_fees_alltime_usd | 1,419,322 | 1,419,152 | -0.012% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:33:32 | GRT | dl_fees_alltime_usd | 1,415,054 | 1,414,119 | -0.066% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:33:32 | GRT | dl_fees_alltime_usd | 1,419,566 | 1,419,322 | -0.017% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:33:32 | STORJ | disqualified_nodes | 80,238 | 79,569 | -0.834% | backward_revision | depin_first_party · origin ↗ |
| 2026-08-13 15:35:15 | FLOCK | dl_fees_alltime_usd | 1,170,614.6 | 1,170,544.16 | -0.006% | sub_noise | defillama_fees · origin ↗ |
The detector (propintel/revision_ledger.py) diffs every daily snapshot this estate holds of every cumulative-by-construction series — counters that cannot decrease unless upstream rewrote them (block heights, transaction and transfer counters, lifetime fees). A row enters default.depin_revision_ledger iff two snapshots disagree for an already-observed date; zero human judgement. Resolution rule: latest observation wins for current-state reads, the superseded value is retained, never deleted. Population gauges (provider sets, node counts, prices, capacity) legitimately move both ways and are deliberately excluded — a drop there is a real population change, not a rewrite; the gauge table on this page is the worked example. Honest boundary: this catches value-history rewrites ex-post; identical-schema semantic drift with plausible values is what the hash-pinned derivation_replay layer is for. The detector's full classification is inspectable at /v1/revisions and frozen daily at /revision-ledger/REVISIONS_20260902.json.
Served by /v1/network/NODE — the same grades a paying agent receives. Scores are the engines' own 0–100 outputs, published exactly as the engines emitted them, unflattering parts included.
| Engine | Grade | Score |
|---|---|---|
| Node quality | A | 100 |
| Dilution risk | ELEVATED | 55.3027 |
| Bot risk | C | 85 |
| Dev velocity | F | 0 |
| Revenue | F | 0 |
| Data coverage | D | 10 |
| Overall | D | 40.3105 |
No account, no key, no trust required. Commands 1–2 hit this estate's public API (the same rows this page queried — every row carries source / as_of / verify_url); commands 3–5 hit the upstream families the network-side rows came from; command 6 is the estate's graded network row; command 7 is the frozen daily snapshot of the ledger. One polite call per endpoint, no hammering.
# 1) The served revision feed for NODE — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=NODE" | python3 -m json.tool
# 2) The estate-wide feed (every network, both sides of every diff):
curl -s "https://kairossignal.com/v1/revisions" | python3 -m json.tool | head -80
# 3) DefiLlama's fees summary for nodeops (the fees counters' origin):
curl -s -H "User-Agent: kairos-check" "https://api.llama.fi/summary/fees/nodeops" | python3 -m json.tool | head -40
# 4) Blockscout counters for the NODE token contract (on-chain counters' origin):
curl -s -H "User-Agent: kairos-check" "https://eth.blockscout.com/api/v2/addresses/0x2f714d7b9a035d4ce24af8d9b6091c07e37f43fb/counters" | python3 -m json.tool | head -30
# 5) GitHub API for NodeOps-app/atlas-operator (the dev-velocity upstream family):
curl -s -H "User-Agent: kairos-check" "https://api.github.com/repos/NodeOps-app/atlas-operator" | python3 -m json.tool | head -30
# 6) This estate's public API row for NODE (grades + provenance):
curl -s "https://kairossignal.com/v1/network/NODE" | python3 -m json.tool | head -60
# 7) The public daily snapshot of the ledger (frozen copy):
curl -s -o /dev/null -w "%{http_code}\n" "https://kairossignal.com/revision-ledger/REVISIONS_20260902.json"
Method & honesty notes. All counts are queries against the live ledger at generation time, not restamped copy — this page is regenerated by gen_revision_page_node.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The NODE revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='NODE'; the page refuses to ship if the served /v1/revisions?symbol=NODE disagrees with it. The 18 estate-wide events shown are deduped on revision identity (deterministic hash of network, metric, current_date, prior_date) exactly as the API dedupes them; detected_at is the first detection and never moves. Series absent from a section are absent, not zero: the daily-snapshot ledger for NODE is genuinely empty today — because every watched counter the archive holds proved monotonic under the detector's diff, a measured negative published as found, with the full trails rendered above — and this page says so instead of inventing restatements. The same-stamp conflict check is likewise the honest live answer: 0 groups in depin_onchain and 0 in depin_daily. Upstream probes ran serially by this generator immediately before rendering: api.llama.fi /summary/fees/nodeops (the fees upstream: the all-time fees counter and its rolling windows) HTTP 200; eth.blockscout.com counters for the NODE token contract (the evm_blockscout upstream: transactions / gas / transfers) HTTP 200; GitHub API NodeOps-app/atlas-operator (the github upstream family) HTTP 200; CoinGecko NODE page (browser-verified origin; 403 here is its bot wall) HTTP 403; estate /v1/revisions?symbol=NODE HTTP 200; estate /v1/network/NODE HTTP 200.
propintel/gen_revision_page_node.py · source of truth: default.depin_catalog, default.depin_onchain, default.depin_daily, default.depin_revision_ledger (ClickHouse, live at generation) · Kairos Signal — provenance or silence.