Crust Network (CRU) — the revision ledger

Generated 2026-10-17T05:15:21Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for Crust Network (CRU): 32,723 observations · 43 distinct series · 5 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-10-17 04:50:53 · every one of the 32,723 rows carries a verify_url · 43 series refreshed in the last 24h (652 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 CRU view of that product: the live ledger for CRU — currently zero recorded restatements, published exactly as the query found it — 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 Crust Network (CRU)'s archive comes from

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. Crust Network (the catalog name here is Crust Network, category storage, chains ethereum) publishes no first-party stats API of its own in this catalog — the network-side series held for CRU come from this estate's own depin_first_party BLOCK_HEIGHT collector and Substrate RPC reads via the public OnFinality Crust endpoint (finalized block height), with CoinGecko's market series alongside. The Crust token contract on Ethereum is 0x32a7c02e79c4ea1008dd6564b35f131428673c41.

SourceRows heldSeriesRows w/ verify_urlWindow (UTC)Sample origin
CoinGecko /coins/markets29,8002329,8002026-08-09 17:15:20 → 2026-10-17 04:50:53sample origin ↗
substrate_rpc1,62011,6202026-08-09 23:24:21 → 2026-10-17 04:17:05sample origin ↗
dexscreener_pairs672126722026-09-25 01:35:55 → 2026-10-17 00:21:01sample origin ↗
geckoterminal_dex63076302026-09-25 00:41:50 → 2026-10-17 00:44:05sample origin ↗
first_party_api1112026-08-10 00:04:09 → 2026-08-10 00:04:09sample origin ↗

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

The ledger query ran during generation and returned 0 rows for CRU. Zero here is the live query result, not a gap — the ledger itself is at /v1/revisions?symbol=CRU (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=CRU cross-check passed: the served API reports 0 row(s), matching the ledger count rendered on this page.

Why zero is the interesting answer. The detector does not skip CRU — below, the live intersection shows the 1 cumulative-by-construction series the archive holds for this network, each fully diffed across its whole snapshot window (where it has more than one observation), and each rendered here end to end so the monotone runs are visible raw. Nothing moved backward. That is the structural zero: the detector was watching, the counters were fully exposed to it, and upstream did not rewrite history for this network in the window this estate holds. Publishing an empty ledger as a live query result — instead of padding it with gauge noise — is the same retention discipline the ledger exists to sell.

What the detector watches for Crust Network — 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 (11 declared names, so this page can never drift from the detector) — with what the daily archive holds for CRU. Both series held are chain-height counters: the first-party collector's BLOCK_HEIGHT and the Substrate RPC's finalized_block_height — quantities that cannot decrease unless upstream rewrote history.

Watchlist series heldRowsDaysSource
BLOCK_HEIGHT6969depin_first_party

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

These are the actual counter trails the detector diffed for CRU, rendered live from the archive. Each is a series that cannot decrease unless upstream rewrote history — and each is monotonic across its entire held window, which is exactly why the ledger above is empty. The raw runs are the evidence; the reader does not have to trust the summary.

BLOCK_HEIGHT — the cumulative Crust chain height captured by this estate's depin_first_party collector, across all 69 snapshot days:

Snapshot dateCumulative valueSource
2026-08-0926,302,850depin_first_party
2026-08-1026,317,213depin_first_party
2026-08-1126,331,449depin_first_party
2026-08-1226,345,786depin_first_party
2026-08-1326,359,828depin_first_party
2026-08-1426,373,526depin_first_party
2026-08-1526,387,246depin_first_party
2026-08-1626,399,742depin_first_party
2026-08-1726,414,100depin_first_party
2026-08-1826,428,441depin_first_party
2026-08-1926,442,791depin_first_party
2026-08-2026,457,239depin_first_party
2026-08-2126,471,637depin_first_party
2026-08-2226,485,937depin_first_party
2026-08-2326,500,338depin_first_party
2026-08-2426,514,836depin_first_party
2026-08-2526,529,129depin_first_party
2026-08-2626,543,577depin_first_party
2026-08-2726,557,414depin_first_party
2026-08-2826,571,039depin_first_party
2026-08-2926,584,706depin_first_party
2026-08-3026,599,144depin_first_party
2026-08-3126,613,494depin_first_party
2026-09-0126,627,931depin_first_party
2026-09-0226,642,360depin_first_party
2026-09-0326,656,647depin_first_party
2026-09-0426,671,032depin_first_party
2026-09-0526,685,346depin_first_party
2026-09-0626,699,775depin_first_party
2026-09-0726,714,091depin_first_party
2026-09-0826,728,476depin_first_party
2026-09-0926,742,254depin_first_party
2026-09-1026,754,511depin_first_party
2026-09-1126,766,894depin_first_party
2026-09-1226,781,284depin_first_party
2026-09-1326,795,768depin_first_party
2026-09-1426,810,063depin_first_party
2026-09-1526,824,462depin_first_party
2026-09-1626,838,858depin_first_party
2026-09-1726,853,197depin_first_party
2026-09-1826,867,699depin_first_party
2026-09-1926,881,960depin_first_party
2026-09-2026,896,371depin_first_party
2026-09-2126,910,814depin_first_party
2026-09-2226,925,242depin_first_party
2026-09-2326,939,353depin_first_party
2026-09-2426,953,886depin_first_party
2026-09-2526,968,187depin_first_party
2026-09-2626,982,591depin_first_party
2026-09-2726,997,097depin_first_party
2026-09-2827,011,342depin_first_party
2026-09-2927,025,894depin_first_party
2026-09-3027,040,192depin_first_party
2026-10-0127,054,692depin_first_party
2026-10-0227,068,940depin_first_party
2026-10-0327,083,488depin_first_party
2026-10-0427,097,738depin_first_party
2026-10-0527,112,188depin_first_party
2026-10-0627,126,604depin_first_party
2026-10-0727,140,963depin_first_party
2026-10-0827,155,413depin_first_party
2026-10-0927,169,900depin_first_party
2026-10-1027,184,188depin_first_party
2026-10-1127,198,614depin_first_party
2026-10-1227,212,914depin_first_party
2026-10-1327,227,364depin_first_party
2026-10-1427,241,864depin_first_party
2026-10-1527,255,954depin_first_party
2026-10-1627,270,303depin_first_party

finalized_block_height — the cumulative Crust finalized-block height read from the public Substrate RPC endpoint (https://crust.api.onfinality.io/public), across all 69 snapshot days:

Snapshot dateCumulative valueSource
2026-08-0926,302,496substrate_rpc
2026-08-1026,316,787first_party_api
2026-08-1126,331,186substrate_rpc
2026-08-1226,345,423substrate_rpc
2026-08-1326,359,471substrate_rpc
2026-08-1426,373,174substrate_rpc
2026-08-1526,386,894substrate_rpc
2026-08-1626,399,484substrate_rpc
2026-08-1726,413,677substrate_rpc
2026-08-1826,428,068substrate_rpc
2026-08-1926,442,468substrate_rpc
2026-08-2026,456,866substrate_rpc
2026-08-2126,471,264substrate_rpc
2026-08-2226,485,664substrate_rpc
2026-08-2326,500,063substrate_rpc
2026-08-2426,514,461substrate_rpc
2026-08-2526,528,854substrate_rpc
2026-08-2626,543,252substrate_rpc
2026-08-2726,557,069substrate_rpc
2026-08-2826,570,714substrate_rpc
2026-08-2926,584,381substrate_rpc
2026-08-3026,598,770substrate_rpc
2026-08-3126,613,169substrate_rpc
2026-09-0126,627,557substrate_rpc
2026-09-0226,641,941substrate_rpc
2026-09-0326,656,327substrate_rpc
2026-09-0426,670,713substrate_rpc
2026-09-0526,685,076substrate_rpc
2026-09-0626,699,415substrate_rpc
2026-09-0726,713,780substrate_rpc
2026-09-0826,728,164substrate_rpc
2026-09-0926,742,036substrate_rpc
2026-09-1026,754,251substrate_rpc
2026-09-1126,766,619substrate_rpc
2026-09-1226,780,958substrate_rpc
2026-09-1326,795,342substrate_rpc
2026-09-1426,809,739substrate_rpc
2026-09-1526,824,137substrate_rpc
2026-09-1626,838,533substrate_rpc
2026-09-1726,852,922substrate_rpc
2026-09-1826,867,306substrate_rpc
2026-09-1926,881,675substrate_rpc
2026-09-2026,896,068substrate_rpc
2026-09-2126,910,460substrate_rpc
2026-09-2226,924,840substrate_rpc
2026-09-2326,939,099substrate_rpc
2026-09-2426,953,498substrate_rpc
2026-09-2526,967,898substrate_rpc
2026-09-2626,982,297substrate_rpc
2026-09-2726,996,697substrate_rpc
2026-09-2827,011,097substrate_rpc
2026-09-2927,025,497substrate_rpc
2026-09-3027,039,897substrate_rpc
2026-10-0127,054,297substrate_rpc
2026-10-0227,068,695substrate_rpc
2026-10-0327,083,093substrate_rpc
2026-10-0427,097,494substrate_rpc
2026-10-0527,111,891substrate_rpc
2026-10-0627,126,289substrate_rpc
2026-10-0727,140,688substrate_rpc
2026-10-0827,155,088substrate_rpc
2026-10-0927,169,488substrate_rpc
2026-10-1027,183,888substrate_rpc
2026-10-1127,198,264substrate_rpc
2026-10-1227,212,664substrate_rpc
2026-10-1327,227,064substrate_rpc
2026-10-1427,241,464substrate_rpc
2026-10-1527,255,569substrate_rpc
2026-10-1627,269,967substrate_rpc

Cross-source agreement — two independent pipelines, one chain

This estate's first-party BLOCK_HEIGHT collector and the Substrate RPC's finalized_block_height are two independent pipelines measuring the same chain: Crust. They are not expected to be identical — a finalized height legitimately trails the chain head by the finality lag — so the check is published as the measured per-day offset, raw: on the 69 overlapping snapshot days, the first-party head read sits above the finalized read by between 218 and 426 blocks (worst day ≈0.0016% of the height). Both captures rise in lockstep, day after day — the signature of two pipelines reading the same growing chain, not of a history rewrite. A live-computed check, not an assertion — every overlapping day, both values, and the offset:

Snapshot dateFirst-party BLOCK_HEIGHTSubstrate finalized_block_heightOffset (head − finalized)First-party source
2026-08-0926,302,85026,302,496354depin_first_party
2026-08-1026,317,21326,316,787426depin_first_party
2026-08-1126,331,44926,331,186263depin_first_party
2026-08-1226,345,78626,345,423363depin_first_party
2026-08-1326,359,82826,359,471357depin_first_party
2026-08-1426,373,52626,373,174352depin_first_party
2026-08-1526,387,24626,386,894352depin_first_party
2026-08-1626,399,74226,399,484258depin_first_party
2026-08-1726,414,10026,413,677423depin_first_party
2026-08-1826,428,44126,428,068373depin_first_party
2026-08-1926,442,79126,442,468323depin_first_party
2026-08-2026,457,23926,456,866373depin_first_party
2026-08-2126,471,63726,471,264373depin_first_party
2026-08-2226,485,93726,485,664273depin_first_party
2026-08-2326,500,33826,500,063275depin_first_party
2026-08-2426,514,83626,514,461375depin_first_party
2026-08-2526,529,12926,528,854275depin_first_party
2026-08-2626,543,57726,543,252325depin_first_party
2026-08-2726,557,41426,557,069345depin_first_party
2026-08-2826,571,03926,570,714325depin_first_party
2026-08-2926,584,70626,584,381325depin_first_party
2026-08-3026,599,14426,598,770374depin_first_party
2026-08-3126,613,49426,613,169325depin_first_party
2026-09-0126,627,93126,627,557374depin_first_party
2026-09-0226,642,36026,641,941419depin_first_party
2026-09-0326,656,64726,656,327320depin_first_party
2026-09-0426,671,03226,670,713319depin_first_party
2026-09-0526,685,34626,685,076270depin_first_party
2026-09-0626,699,77526,699,415360depin_first_party
2026-09-0726,714,09126,713,780311depin_first_party
2026-09-0826,728,47626,728,164312depin_first_party
2026-09-0926,742,25426,742,036218depin_first_party
2026-09-1026,754,51126,754,251260depin_first_party
2026-09-1126,766,89426,766,619275depin_first_party
2026-09-1226,781,28426,780,958326depin_first_party
2026-09-1326,795,76826,795,342426depin_first_party
2026-09-1426,810,06326,809,739324depin_first_party
2026-09-1526,824,46226,824,137325depin_first_party
2026-09-1626,838,85826,838,533325depin_first_party
2026-09-1726,853,19726,852,922275depin_first_party
2026-09-1826,867,69926,867,306393depin_first_party
2026-09-1926,881,96026,881,675285depin_first_party
2026-09-2026,896,37126,896,068303depin_first_party
2026-09-2126,910,81426,910,460354depin_first_party
2026-09-2226,925,24226,924,840402depin_first_party
2026-09-2326,939,35326,939,099254depin_first_party
2026-09-2426,953,88626,953,498388depin_first_party
2026-09-2526,968,18726,967,898289depin_first_party
2026-09-2626,982,59126,982,297294depin_first_party
2026-09-2726,997,09726,996,697400depin_first_party
2026-09-2827,011,34227,011,097245depin_first_party
2026-09-2927,025,89427,025,497397depin_first_party
2026-09-3027,040,19227,039,897295depin_first_party
2026-10-0127,054,69227,054,297395depin_first_party
2026-10-0227,068,94027,068,695245depin_first_party
2026-10-0327,083,48827,083,093395depin_first_party
2026-10-0427,097,73827,097,494244depin_first_party
2026-10-0527,112,18827,111,891297depin_first_party
2026-10-0627,126,60427,126,289315depin_first_party
2026-10-0727,140,96327,140,688275depin_first_party
2026-10-0827,155,41327,155,088325depin_first_party
2026-10-0927,169,90027,169,488412depin_first_party
2026-10-1027,184,18827,183,888300depin_first_party
2026-10-1127,198,61427,198,264350depin_first_party
2026-10-1227,212,91427,212,664250depin_first_party
2026-10-1327,227,36427,227,064300depin_first_party
2026-10-1427,241,86427,241,464400depin_first_party
2026-10-1527,255,95427,255,569385depin_first_party
2026-10-1627,270,30327,269,967336depin_first_party

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 market change or tokens moving, not upstream rewriting history. Price, market-cap and volume classes dominate this table for CRU. Publishing them as "revisions" would be exactly the fake-metric behaviour this product exists to eliminate.

Series (gauge / revaluation)Backward moves observedSnapshot rows held
fully_diluted_valuation_usd3364
market_cap_usd3364
price_high_24h_usd3358
price_usd3364
price_from_atl_pct3058
HOLDERS2969
volume_24h_usd2858
price_low_24h_usd2758
market_cap_rank2658
market_cap_change_24h_pct2258
market_cap_change_24h_usd2258
price_change_24h_pct2258
price_change_24h_usd2258
price_change_1h_pct1358

Same-timestamp conflicting values on record for CRU

The task-level conflict check, run live: any (metric, timestamp) family where this estate recorded two or more different values. Showing the first 30 groups of 4 in depin_onchain — and 0 in depin_daily.

MetricTimestamp (UTC)Distinct values recordedValuesProvenance
market_cap_change_24h_pct2026-09-13 05:52:20.00020.90397 | 0.9152CoinGecko /coins/markets · origin ↗
market_cap_change_24h_usd2026-09-13 05:52:20.00022395.69 | 2425.18CoinGecko /coins/markets · origin ↗
price_change_24h_pct2026-09-13 05:52:20.00020.90445 | -1.06313CoinGecko /coins/markets · origin ↗
price_change_24h_usd2026-09-13 05:52:20.00020.00009 | 0.000091CoinGecko /coins/markets · origin ↗

What these are, stated plainly. The conflicting groups above are examined per row with their provenance; the estate keeps every write rather than overwriting, which is why any disagreement would be visible and publishable instead of silently destroyed.

The ledger, live — every restatement recorded estate-wide (39 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 overwritten; that retention is the only reason a rewrite is detectable, and it is the part every overwriting vendor discards.

First detectedNetworkMetricWasBecameΔKindProvenance
2026-10-17 01:15:02ARblocks1,980,1161,702,204-14.035%backward_revisiondepin_first_party
2026-10-17 01:15:02ARblocks1,986,2201,702,204-14.299%backward_revisiondepin_first_party
2026-10-17 01:15:02ARblocks1,988,9301,702,206-14.416%backward_revisiondepin_first_party
2026-10-17 01:15:02ARblocks1,982,1761,702,204-14.124%backward_revisiondepin_first_party
2026-10-17 01:15:02GRTdl_fees_alltime_usd1,419,3221,419,152-0.012%backward_revisiondepin_first_party
2026-10-17 01:15:02GRTdl_fees_alltime_usd1,419,5661,419,322-0.017%backward_revisiondepin_first_party
2026-10-17 01:15:02GRTdl_fees_alltime_usd1,443,521.441,442,910.44-0.042%backward_revisiondepin_first_party
2026-10-17 01:15:02GRTdl_fees_alltime_usd1,415,0541,414,119-0.066%backward_revisiondepin_first_party
2026-10-17 01:15:02NODEdl_fees_alltime_usd811,347810,962-0.047%backward_revisiondepin_first_party
2026-10-17 01:15:02NODEdl_fees_alltime_usd811,126810,992-0.017%backward_revisiondepin_first_party
2026-10-17 01:15:02OPENdl_fees_alltime_usd288,385288,055-0.114%backward_revisiondepin_first_party
2026-10-17 01:15:02STORJdisqualified_nodes80,23879,569-0.834%backward_revisiondepin_first_party
2026-10-16 01:15:02ARblocks2,001,7361,702,218-14.963%backward_revisiondepin_first_party
2026-10-16 01:15:02ARblocks1,992,2991,702,218-14.560%backward_revisiondepin_first_party
2026-10-16 01:15:02ARblocks1,995,6771,702,218-14.705%backward_revisiondepin_first_party
2026-10-16 01:15:02ARblocks1,999,7261,702,218-14.877%backward_revisiondepin_first_party
2026-10-16 01:15:02ARblocks2,007,2101,702,218-15.195%backward_revisiondepin_first_party
2026-10-16 01:15:02ATHdl_fees_alltime_usd180,402,699.27180,348,562.27-0.030%backward_revisiondepin_first_party
2026-10-16 01:15:02AUKIdl_fees_alltime_usd248,389248,364-0.010%backward_revisiondepin_first_party
2026-10-16 01:15:02AUKIdl_fees_alltime_usd253,682251,527-0.849%backward_revisiondepin_first_party
2026-10-16 01:15:02AUKIdl_fees_alltime_usd249,318249,293-0.010%backward_revisiondepin_first_party
2026-10-16 01:15:02GRTdl_fees_alltime_usd1,431,295.441,428,351.44-0.206%backward_revisiondepin_first_party
2026-10-16 01:15:02GRTdl_fees_alltime_usd1,441,313.441,440,661.44-0.045%backward_revisiondepin_first_party
2026-10-16 01:15:02GRTdl_fees_alltime_usd1,433,230.441,433,068.44-0.011%backward_revisiondepin_first_party
2026-10-16 01:15:02GRTdl_fees_alltime_usd1,424,3161,423,345-0.068%backward_revisiondepin_first_party
2026-10-16 01:15:02NODEdl_fees_alltime_usd804,574804,388-0.023%backward_revisiondepin_first_party
2026-10-16 01:15:02OPENdl_fees_alltime_usd272,079271,588-0.180%backward_revisiondepin_first_party
2026-09-05 01:15:02AUKItoken_transfers_total1,230,1671,228,860-0.106%backward_revisionevm_blockscout · origin ↗
2026-09-05 01:15:02EIGENfees_alltime_usd161,955,683.53161,932,203.53-0.014%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-05 01:15:02GRTfees_alltime_usd1,419,3281,419,152-0.012%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-05 01:15:02GRTfees_alltime_usd1,419,5581,419,328-0.016%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-05 01:15:02GRTfees_alltime_usd1,424,3021,423,345-0.067%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-05 01:15:02NODEfees_alltime_usd804,574804,388-0.023%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-05 01:15:02OBOTtoken_transfers_total40,25340,246-0.017%backward_revisionevm_blockscout · origin ↗
2026-09-05 01:15:02OVPPtoken_transfers_total1,356,7491,354,903-0.136%backward_revisionevm_blockscout · origin ↗
2026-09-05 01:15:02R1token_transfers_total194,634194,527-0.055%backward_revisionevm_blockscout · origin ↗
2026-09-05 01:15:02R1token_transfers_total194,390194,337-0.027%backward_revisionevm_blockscout · origin ↗
2026-09-05 01:15:02SOGNItoken_transfers_total1,177,2191,174,145-0.261%backward_revisionevm_blockscout · 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 overwritten. Population gauges (provider sets, node counts, prices, capacity, rolling windows) legitimately move both ways and are deliberately excluded — a drop there is a real 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.

The snapshot archive the detection runs over

CRU's slice of depin_daily: 1,585 rows over 69 snapshot days (2026-08-09 → 2026-10-16), from 4 source families. Each snapshot is a same-day capture of every series the collectors touched; the detector diffs consecutive snapshots of cumulative series across this window. This is the substrate the zero above is measured over — not an assumption, a measured archive.

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); command 3 hits the Substrate RPC the chain-height rows came from; command 4 checks the CoinGecko origin of the market series; command 5 is the estate's graded network row; command 6 is the frozen daily snapshot of the ledger. Per-row verify URLs are linked in the provenance table above. One polite call per endpoint, no hammering.

# 1) The served revision feed for CRU — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=CRU" | 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) The public Substrate RPC for Crust (the finalized_block_height / chain_health_peers origin family):
curl -s -H "User-Agent: kairos-check" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"chain_getFinalizedHead","params":[],"id":1}' "https://crust.api.onfinality.io/public"
# 4) CoinGecko's Crust Network page (the market-series origin; 403 on curl is its bot wall — open in a browser):
curl -s -o /dev/null -w "%{http_code}\n" "https://www.coingecko.com/en/coins/crust-network"
# 5) This estate's public API row for CRU (grades + provenance):
curl -s "https://kairossignal.com/v1/network/CRU" | python3 -m json.tool | head -60
# 6) 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/CRU.

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_cru.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The CRU revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='CRU'; the page refuses to ship if the served /v1/revisions?symbol=CRU disagrees with it, and states the fact plainly if that endpoint is unavailable at generation. 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. The same-stamp conflict check is the honest live answer: 4 groups in depin_onchain and 0 in depin_daily. Upstream probes ran serially by this generator immediately before rendering: CoinGecko Crust Network page (browser-verified origin; 403 here is its bot wall) HTTP 403; public Substrate RPC for Crust (the finalized_block_height / chain_health_peers origin family) HTTP 405; estate /v1/revisions?symbol=CRU HTTP 200; estate /v1/network/CRU HTTP 200.

Machine-generated 2026-10-17T05:15:21Z by propintel/gen_revision_page_cru.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.