Generated 2026-10-18T05:47:55Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for Storj: 93,634 observations · 84 distinct series · 5 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-10-18 05:47:01 · every one of the 93,634 rows carries a verify_url · 84 series refreshed in the last 24h (1,669 fresh rows). Nothing on this page is cached, estimated, or remembered.
5 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. The largest family is Storj's own node stats endpoint (https://stats.storjshare.io/nodes.json) — first-party telemetry from the network's own published API.
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| first_party_api | 57,856 | 42 | 57,856 | 2026-08-09 23:28:06 → 2026-10-18 05:34:01 | sample origin ↗ |
| CoinGecko /coins/markets | 30,007 | 23 | 30,007 | 2026-08-09 17:15:20 → 2026-10-18 04:51:54 | sample origin ↗ |
| storj_stats | 4,728 | 3 | 4,728 | 2026-08-12 19:27:37 → 2026-10-18 05:47:01 | sample origin ↗ |
| geckoterminal_dex | 658 | 7 | 658 | 2026-09-25 01:03:50 → 2026-10-18 01:20:34 | sample origin ↗ |
| github | 385 | 9 | 385 | 2026-08-09 23:42:07 → 2026-10-17 12:29:01 | sample origin ↗ |
Backward revisions are values upstream later replaced for a date this estate had already archived. The before-value is retained alongside the replacement — both snapshot dates, both numbers — which is what no overwriting vendor keeps. The ledger table is a ReplacingMergeTree the detector re-writes daily; this table shows the DEDUPED event set (min(detected_at) kept — the same dedupe rule /v1/revisions and the daily exports use). Raw detection rows behind this event set: 2. /v1/revisions?symbol=STORJ cross-check passed: the served API reports 1 row(s), matching the deduped ledger count rendered on this page.
| First detected (UTC) | Metric | Snapshot | Was | Restated in snapshot | Became | Δ | Kind | Provenance |
|---|---|---|---|---|---|---|---|---|
| 2026-10-17 01:15:02 | disqualified_nodes | 2026-08-09 | 80,238 | 2026-08-10 | 79,569 | -0.834% | backward_revision | depin_first_party |
Straight from default.depin_daily at generation: the disqualified-nodes counter as each daily snapshot recorded it around the event. The 80,238 → 79,569 rewrite is visible in the held history — the 2026-08-10 snapshot already carried the replaced value, so the before-value exists only because this estate kept it. Snapshot 2026-08-09 is the date whose value upstream replaced.
| Snapshot date | DISQUALIFIED_NODES value | Source |
|---|---|---|
| 2026-08-07 | 80,235 | depin_first_party |
| 2026-08-08 | 80,237 | depin_first_party |
| 2026-08-09 | 80,238 | depin_first_party |
| 2026-08-10 | 79,569 | depin_first_party |
| 2026-08-11 | 79,576 | depin_first_party |
| 2026-08-12 | 80,470 | depin_first_party |
The aggregate DISQUALIFIED_NODES counter that was revised rolls up per-satellite series the estate also holds, from the same first-party source. Values below are the LATEST row per series in default.depin_onchain at generation — a gauge that moves, provenance attached.
| Series | Latest value | As of (UTC) | Provenance |
|---|---|---|---|
disqualified_nodes_ap1 | 79,970 | 2026-10-18 05:34:01 | first_party_api · origin ↗ |
disqualified_nodes_eu1 | 79,869 | 2026-10-18 05:34:01 | first_party_api · origin ↗ |
disqualified_nodes_saltlake | 78,702 | 2026-10-18 05:34:01 | first_party_api · origin ↗ |
disqualified_nodes_us1 | 82,850 | 2026-10-18 05:34:01 | first_party_api · origin ↗ |
exited_nodes_ap1 | 6,440 | 2026-10-18 05:34:01 | first_party_api · origin ↗ |
exited_nodes_eu1 | 6,038 | 2026-10-18 05:34:01 | first_party_api · origin ↗ |
exited_nodes_saltlake | 7,345 | 2026-10-18 05:34:01 | first_party_api · origin ↗ |
exited_nodes_us1 | 8,029 | 2026-10-18 05:34:01 | first_party_api · origin ↗ |
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 overwritten; 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-10-18 01:15:02 | AR | blocks | 1,999,726 | 1,702,218 | -14.877% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | AR | blocks | 1,992,299 | 1,702,218 | -14.560% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | AR | blocks | 2,001,736 | 1,702,218 | -14.963% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | AR | blocks | 1,995,677 | 1,702,218 | -14.705% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | AR | blocks | 2,007,210 | 1,702,218 | -15.195% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | ATH | dl_fees_alltime_usd | 180,402,699.27 | 180,348,562.27 | -0.030% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | AUKI | dl_fees_alltime_usd | 253,682 | 251,527 | -0.849% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | AUKI | dl_fees_alltime_usd | 248,389 | 248,364 | -0.010% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | AUKI | dl_fees_alltime_usd | 249,318 | 249,293 | -0.010% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | GRT | dl_fees_alltime_usd | 1,433,230.44 | 1,433,068.44 | -0.011% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | GRT | dl_fees_alltime_usd | 1,443,521.44 | 1,442,910.44 | -0.042% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | GRT | dl_fees_alltime_usd | 1,431,295.44 | 1,428,351.44 | -0.206% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | GRT | dl_fees_alltime_usd | 1,441,313.44 | 1,440,661.44 | -0.045% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | GRT | dl_fees_alltime_usd | 1,424,316 | 1,423,345 | -0.068% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | NODE | dl_fees_alltime_usd | 811,126 | 810,992 | -0.017% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | NODE | dl_fees_alltime_usd | 811,347 | 810,962 | -0.047% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | NODE | dl_fees_alltime_usd | 804,574 | 804,388 | -0.023% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | OPEN | dl_fees_alltime_usd | 272,079 | 271,588 | -0.180% | backward_revision | depin_first_party |
| 2026-10-18 01:15:02 | OPEN | dl_fees_alltime_usd | 288,385 | 288,055 | -0.114% | backward_revision | depin_first_party |
| 2026-10-17 01:15:02 | AR | blocks | 1,980,116 | 1,702,204 | -14.035% | backward_revision | depin_first_party |
| 2026-10-17 01:15:02 | AR | blocks | 1,986,220 | 1,702,204 | -14.299% | backward_revision | depin_first_party |
| 2026-10-17 01:15:02 | AR | blocks | 1,988,930 | 1,702,206 | -14.416% | backward_revision | depin_first_party |
| 2026-10-17 01:15:02 | AR | blocks | 1,982,176 | 1,702,204 | -14.124% | backward_revision | depin_first_party |
| 2026-10-17 01:15:02 | GRT | dl_fees_alltime_usd | 1,419,322 | 1,419,152 | -0.012% | backward_revision | depin_first_party |
| 2026-10-17 01:15:02 | GRT | dl_fees_alltime_usd | 1,419,566 | 1,419,322 | -0.017% | backward_revision | depin_first_party |
| 2026-10-17 01:15:02 | GRT | dl_fees_alltime_usd | 1,415,054 | 1,414,119 | -0.066% | backward_revision | depin_first_party |
| 2026-10-17 01:15:02 | STORJ | disqualified_nodes | 80,238 | 79,569 | -0.834% | backward_revision | depin_first_party |
| 2026-09-05 01:15:02 | AUKI | token_transfers_total | 1,230,167 | 1,228,860 | -0.106% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-05 01:15:02 | EIGEN | fees_alltime_usd | 161,955,683.53 | 161,932,203.53 | -0.014% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-05 01:15:02 | GRT | fees_alltime_usd | 1,419,558 | 1,419,328 | -0.016% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-05 01:15:02 | GRT | fees_alltime_usd | 1,424,302 | 1,423,345 | -0.067% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-05 01:15:02 | GRT | fees_alltime_usd | 1,419,328 | 1,419,152 | -0.012% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-05 01:15:02 | NODE | fees_alltime_usd | 804,574 | 804,388 | -0.023% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-05 01:15:02 | OBOT | token_transfers_total | 40,253 | 40,246 | -0.017% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-05 01:15:02 | OVPP | token_transfers_total | 1,356,749 | 1,354,903 | -0.136% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-05 01:15:02 | R1 | token_transfers_total | 194,634 | 194,527 | -0.055% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-05 01:15:02 | R1 | token_transfers_total | 194,390 | 194,337 | -0.027% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-05 01:15:02 | SOGNI | token_transfers_total | 1,177,219 | 1,174,145 | -0.261% | backward_revision | evm_blockscout · 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 (alltime fees, token transfers, block heights, node disqualifications). 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 overwritten. Population gauges (node counts, TVL, prices) legitimately move both ways and are deliberately excluded — a drop there is a real population change, not a rewrite. 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.
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); command 3 hits Storj's own stats endpoint, the first-party source the revision family came from; command 4 is the estate's graded network row; command 5 is the frozen daily snapshot of the ledger. One polite call per endpoint, no hammering.
# 1) The served revision feed for STORJ — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=STORJ" | 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) Storj's own stats endpoint (the first-party source this ledger family came from):
curl -s -H "User-Agent: kairos-check" "https://stats.storjshare.io/nodes.json" | python3 -m json.tool | head -40
# 4) This estate's public API row for STORJ (grades + provenance):
curl -s "https://kairossignal.com/v1/network/STORJ" | python3 -m json.tool | head -60
# 5) 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_storj.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The STORJ revision count is the deduped live result of SELECT ... FROM default.depin_revision_ledger WHERE network='STORJ' GROUP BY revision identity; the page refuses to ship if the served /v1/revisions?symbol=STORJ disagrees with it. The 39 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. Upstream probes ran serially by this generator immediately before rendering: stats.storjshare.io/nodes.json (first-party) HTTP 200; estate /v1/revisions?symbol=STORJ HTTP 200; estate /v1/network/STORJ HTTP 200.
propintel/gen_revision_page_storj.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.