NodeOps (NODE) — the revision ledger

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.

What this page is. Data vendors restate history: a number they published for a date gets replaced later, silently, and everyone who stored the first answer either never notices or overwrites it. This estate keeps a machine detector over its daily snapshots for every cumulative-by-construction series, records the before-value beside the replacement, and serves the record at /v1/revisions. This page is the NODE view of that product: the live ledger for NODE, the estate-wide feed as proof the detector works, the archive the detection runs over, and the exact commands to verify any of it without an account. It does not forecast, rank investment merit, or advise. Where a fact has a caveat, the caveat ships with the fact.

Provenance — where NodeOps's archive comes from

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).

SourceRows heldSeriesRows w/ verify_urlWindow (UTC)Sample origin
CoinGecko /coins/markets7,026247,0262026-08-09 17:15:20 → 2026-09-02 18:49:30sample origin ↗
DefiLlama /overview/fees1,05371,0532026-08-09 17:17:15 → 2026-09-02 18:58:01sample origin ↗
github11461142026-08-09 23:47:26 → 2026-09-01 18:29:02sample origin ↗
evm_blockscout966962026-08-09 23:27:47 → 2026-09-02 12:37:02sample origin ↗

Revision ledger — 0 backward revision(s) recorded for NODE

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.

What the detector watches for NodeOps — the intersection, measured

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 heldRowsDaysSource
DL_FEES_ALLTIME_USD2424depin_first_party
contract_gas_used_total1010evm_blockscout
contract_transactions_total1010evm_blockscout
fees_alltime_usd1010DefiLlama /overview/fees
token_transfers_total1111evm_blockscout

The trails behind the zero — watched counters, end to end

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 dateLifetime fees (USD)Source
2026-08-09799,617depin_first_party
2026-08-10799,632depin_first_party
2026-08-11799,829depin_first_party
2026-08-12800,043depin_first_party
2026-08-13800,058depin_first_party
2026-08-14800,088depin_first_party
2026-08-15800,138depin_first_party
2026-08-16800,390depin_first_party
2026-08-17800,390depin_first_party
2026-08-18800,435depin_first_party
2026-08-19800,835depin_first_party
2026-08-20800,835depin_first_party
2026-08-21801,001depin_first_party
2026-08-22801,031depin_first_party
2026-08-23801,463depin_first_party
2026-08-24803,306depin_first_party
2026-08-25803,306depin_first_party
2026-08-26803,306depin_first_party
2026-08-27803,411depin_first_party
2026-08-28803,459depin_first_party
2026-08-29803,532depin_first_party
2026-08-30803,602depin_first_party
2026-08-31804,272depin_first_party
2026-09-01804,388depin_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 dateLifetime token transfersSource
2026-08-2214,219evm_blockscout
2026-08-2314,221evm_blockscout
2026-08-2414,230evm_blockscout
2026-08-2514,245evm_blockscout
2026-08-2614,252evm_blockscout
2026-08-2714,274evm_blockscout
2026-08-2814,286evm_blockscout
2026-08-2914,291evm_blockscout
2026-08-3014,323evm_blockscout
2026-08-3114,325evm_blockscout
2026-09-0114,341evm_blockscout

contract_transactions_total — transactions touching the NODE token contract (Blockscout):

Snapshot dateContract transactionsSource
2026-08-2311,476evm_blockscout
2026-08-2411,483evm_blockscout
2026-08-2511,496evm_blockscout
2026-08-2611,499evm_blockscout
2026-08-2711,499evm_blockscout
2026-08-2811,518evm_blockscout
2026-08-2911,530evm_blockscout
2026-08-3011,531evm_blockscout
2026-08-3111,564evm_blockscout
2026-09-0111,564evm_blockscout

contract_gas_used_total — cumulative gas used at the NODE token contract (Blockscout):

Snapshot dateCumulative gas usedSource
2026-08-23587,624,012evm_blockscout
2026-08-24588,002,305evm_blockscout
2026-08-25588,662,635evm_blockscout
2026-08-26588,814,873evm_blockscout
2026-08-27588,814,873evm_blockscout
2026-08-28589,614,779evm_blockscout
2026-08-29590,170,307evm_blockscout
2026-08-30590,229,261evm_blockscout
2026-08-31591,966,354evm_blockscout
2026-09-01591,966,354evm_blockscout

Gauges that moved backward — deliberately NOT revisions

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 observedSnapshot rows held
DL_FEES_30D_USD1424
DL_REV_30D_USD1424
DL_FEES_7D_USD1324
DL_REV_7D_USD1324
fees_7d_usd1017
fully_diluted_valuation_usd1017
market_cap_usd1017
price_usd1017
DL_FEES_24H_USD924
DL_REV_24H_USD924
fees_30d_usd917
fees_1y_usd810
fees_24h_usd717
market_cap_change_24h_pct611

Same-timestamp conflicting values on record for NODE: none

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.

The ledger, live — every restatement recorded estate-wide (18 deduped events)

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 detectedNetworkMetricWasBecameΔKindProvenance
2026-09-02 01:15:01GRTdl_fees_alltime_usd1,424,3161,423,345-0.068%backward_revisiondepin_first_party · origin ↗
2026-09-02 01:15:01GRTfees_alltime_usd1,424,3021,423,345-0.067%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-02 01:15:01OVPPtoken_transfers_total1,356,7491,354,903-0.136%backward_revisionevm_blockscout · origin ↗
2026-09-01 23:34:07ARblocks1,986,2201,702,204-14.299%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:34:07ARblocks1,980,1161,702,204-14.035%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:34:07ARblocks1,988,9301,702,206-14.416%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:34:07ARblocks1,982,1761,702,204-14.124%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:34:07AUKItoken_transfers_total1,230,1671,228,860-0.106%backward_revisionevm_blockscout · origin ↗
2026-09-01 23:34:07EIGENfees_alltime_usd161,955,683.53161,932,203.53-0.014%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:34:07GRTfees_alltime_usd1,419,3281,419,152-0.012%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:34:07GRTfees_alltime_usd1,419,5581,419,328-0.016%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:34:07R1token_transfers_total194,390194,337-0.027%backward_revisionevm_blockscout · origin ↗
2026-09-01 23:34:07SOGNItoken_transfers_total1,177,2191,174,145-0.261%backward_revisionevm_blockscout · origin ↗
2026-09-01 23:33:32GRTdl_fees_alltime_usd1,419,3221,419,152-0.012%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:33:32GRTdl_fees_alltime_usd1,415,0541,414,119-0.066%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:33:32GRTdl_fees_alltime_usd1,419,5661,419,322-0.017%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:33:32STORJdisqualified_nodes80,23879,569-0.834%backward_revisiondepin_first_party · origin ↗
2026-08-13 15:35:15FLOCKdl_fees_alltime_usd1,170,614.61,170,544.16-0.006%sub_noisedefillama_fees · origin ↗

How detection works — and what it cannot see

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.

Estate grades for NODE (graded 2026-08-20 13:54:15.000)

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.

EngineGradeScore
Node qualityA100
Dilution riskELEVATED55.3027
Bot riskC85
Dev velocityF0
RevenueF0
Data coverageD10
OverallD40.3105

Verify any cell yourself — the exact commands

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"
Get this network as a data feed. Every number here is one API call away, with the same provenance fields — including the revision feed itself. Pricing · Self-register for free $5 API credits — no card, no human · API reference. Machine-readable row for this network: /v1/network/NODE.

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.

Machine-generated 2026-09-02T19:26:28Z by 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.