Generated 2026-09-02T18:38:13Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for Jackal Protocol: 12,864 observations · 43 distinct series · 3 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 17:49:30 · every one of the 12,864 rows carries a verify_url · 42 series refreshed in the last 24h (1,127 fresh rows). Nothing on this page is cached, estimated, or remembered.
3 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 the Jackal chain's own LCD REST endpoints (https://rest.cosmos.directory/jackal/cosmos/base/tendermint/v1beta1/blocks/latest and siblings) — first-party telemetry from the network's own public API, with the CoinGecko market reference alongside.
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| CoinGecko /coins/markets | 6,992 | 24 | 6,992 | 2026-08-09 17:15:20 → 2026-09-02 17:49:30 | sample origin ↗ |
| cosmos_lcd | 5,868 | 18 | 5,868 | 2026-08-09 23:25:59 → 2026-09-02 17:42:20 | sample origin ↗ |
| first_party_api | 4 | 4 | 4 | 2026-08-10 00:04:09 → 2026-08-10 00:04:09 | sample origin ↗ |
The ledger query ran during generation and returned 0 rows for JKL: every cumulative-by-construction series held for the Jackal ledger has been monotonic across all 24 daily snapshots in the archive (2026-08-09 → 2026-09-01; measured live below, not asserted). Zero here is the live query result, not a gap — the ledger itself is at /v1/revisions?symbol=JKL (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=JKL cross-check passed: the served API reports 0 row(s), matching the ledger count rendered on this page.
Straight from default.depin_daily at generation, using the detector's own lagInFrame diff: counters that cannot decrease unless upstream rewrote them. A backward move in any of these would be a revision event; the zero above is this measurement, not an assertion.
| Series | Snapshot rows | Distinct days | Backward moves | Window | Min → Max |
|---|---|---|---|---|---|
block_height | 11 | 11 | 0 | 2026-08-22 → 2026-09-01 | 19,460,814 → 19,607,804 |
governance_proposals_total | 11 | 11 | 0 | 2026-08-22 → 2026-09-01 | 22 → 22 |
ibc_channels_total | 10 | 10 | 0 | 2026-08-23 → 2026-09-01 | 160 → 160 |
total_accounts | 10 | 10 | 0 | 2026-08-23 → 2026-09-01 | 322,076 → 322,080 |
These series fall outside the detector's cumulative-by-construction class (NOT_TRULY_CUMULATIVE 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 |
|---|---|---|
INFLATION_RATE | 23 | 24 |
inflation | 23 | 24 |
NOT_BONDED_TOKENS | 15 | 24 |
fully_diluted_valuation_usd | 10 | 17 |
market_cap_usd | 10 | 17 |
price_usd | 10 | 17 |
price_change_30d_pct | 7 | 11 |
price_high_24h_usd | 7 | 11 |
unbonded_tokens | 7 | 11 |
price_from_atl_pct | 6 | 11 |
BONDED_TOKENS | 5 | 24 |
bonded_tokens | 5 | 24 |
The sharpest JKL case: bonded_validators moved 30 → 29 twice (snapshots 2026-08-10 and 2026-08-15, both spellings the estate holds measured identically). A naive monotonicity detector would file two restatements; the detector correctly classifies it as a population gauge — validators unbond and bond, the counter describes the live validator set, and the 30-value days either side prove the series was live, not stale. That classification is the difference between a revision feed and noise.
| Snapshot date | bonded_validators value | Source |
|---|---|---|
| 2026-08-09 | 30 | depin_first_party |
| 2026-08-10 | 29 | depin_first_party |
| 2026-08-11 | 30 | depin_first_party |
| 2026-08-12 | 30 | depin_first_party |
| 2026-08-13 | 30 | depin_first_party |
| 2026-08-14 | 30 | depin_first_party |
| 2026-08-15 | 29 | depin_first_party |
| 2026-08-16 | 29 | depin_first_party |
| 2026-08-17 | 29 | depin_first_party |
The task-level conflict check, run live: any (metric, timestamp) family where this estate recorded two or more different values. JKL holds 21 such groups, all from the same upstream family (CoinGecko market series re-polled within the same stamp — the estate kept every copy, which is the point-in-time moat; the served API resolves to the latest). Zero of them involve cumulative-by-construction metrics, and the daily snapshot archive holds 0 — the detector's input is clean.
| Metric | Timestamp (UTC) | Distinct values recorded | Values | Provenance |
|---|---|---|---|---|
market_cap_change_24h_pct | 2026-08-28 02:22:00.000 | 3 | -6.45527 | -5.93069 | -6.27089 | CoinGecko /coins/markets · origin ↗ |
market_cap_change_24h_usd | 2026-08-28 02:22:00.000 | 3 | -3752.862815 | -3428.663454 | -3638.498621 | CoinGecko /coins/markets · origin ↗ |
price_change_14d_pct | 2026-08-28 02:22:00.000 | 2 | 2.6 | 1.6 | CoinGecko /coins/markets · origin ↗ |
price_change_1h_pct | 2026-08-28 02:22:00.000 | 2 | -0.5 | -1.6 | CoinGecko /coins/markets · origin ↗ |
price_change_1y_pct | 2026-08-28 02:22:00.000 | 2 | -98.9 | -99 | CoinGecko /coins/markets · origin ↗ |
price_change_200d_pct | 2026-08-28 02:22:00.000 | 2 | -92.3 | -92.4 | CoinGecko /coins/markets · origin ↗ |
price_change_24h_pct | 2026-08-28 02:22:00.000 | 3 | -6.33015 | -6.4544 | -5.93196 | CoinGecko /coins/markets · origin ↗ |
price_change_24h_usd | 2026-08-28 02:22:00.000 | 3 | -0.000028 | -0.000026 | -0.000028 | CoinGecko /coins/markets · origin ↗ |
price_change_30d_pct | 2026-08-28 02:22:00.000 | 2 | 21.3 | 20.7 | CoinGecko /coins/markets · origin ↗ |
price_change_7d_pct | 2026-08-28 02:22:00.000 | 2 | -23.5 | -24 | CoinGecko /coins/markets · origin ↗ |
price_low_24h_usd | 2026-08-28 02:22:00.000 | 2 | 0.000416 | 0.000413 | CoinGecko /coins/markets · origin ↗ |
market_cap_change_24h_pct | 2026-08-30 03:43:50.000 | 3 | 2.02044 | 2.01733 | 2.30552 | CoinGecko /coins/markets · origin ↗ |
market_cap_change_24h_usd | 2026-08-30 03:43:50.000 | 3 | 1045.56 | 1043.99 | 1189.77 | CoinGecko /coins/markets · origin ↗ |
price_change_14d_pct | 2026-08-30 03:43:50.000 | 2 | -6.4 | -5.8 | CoinGecko /coins/markets · origin ↗ |
price_change_1h_pct | 2026-08-30 03:43:50.000 | 2 | 2 | 0.7 | CoinGecko /coins/markets · origin ↗ |
price_change_1y_pct | 2026-08-30 03:43:50.000 | 2 | -98.8 | -98.9 | CoinGecko /coins/markets · origin ↗ |
price_change_200d_pct | 2026-08-30 03:43:50.000 | 2 | -93.1 | -93 | CoinGecko /coins/markets · origin ↗ |
price_change_24h_pct | 2026-08-30 03:43:50.000 | 3 | 1.87603 | 2.02044 | 2.01545 | CoinGecko /coins/markets · origin ↗ |
price_change_24h_usd | 2026-08-30 03:43:50.000 | 3 | 0.000008 | 0.000008 | 0.000009 | CoinGecko /coins/markets · origin ↗ |
price_change_30d_pct | 2026-08-30 03:43:50.000 | 2 | 11.4 | 11.9 | CoinGecko /coins/markets · origin ↗ |
price_change_7d_pct | 2026-08-30 03:43:50.000 | 2 | -7.6 | -6.8 | CoinGecko /coins/markets · 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 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 (validator sets, node counts, prices) legitimately move both ways and are deliberately excluded — a drop there is a real population change, not a rewrite; the bonded_validators case 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/JKL — 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 | MINIMAL | 86.2564 |
| Bot risk | C | 85 |
| Dev velocity | A | 100 |
| Revenue | F | 0 |
| Data coverage | C | 25 |
| Overall | A | 58.7513 |
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 Jackal chain's own LCD endpoint, the first-party source most chain-side rows 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 JKL — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=JKL" | 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) Jackal's own LCD endpoint (the first-party family most chain rows came from):
curl -s -H "User-Agent: kairos-check" "https://rest.cosmos.directory/jackal/cosmos/base/tendermint/v1beta1/blocks/latest" | python3 -m json.tool | head -40
# 4) This estate's public API row for JKL (grades + provenance):
curl -s "https://kairossignal.com/v1/network/JKL" | 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_jkl.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The JKL revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='JKL'; the page refuses to ship if the served /v1/revisions?symbol=JKL 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 JKL is genuinely empty today, and this page says so instead of inventing restatements; the same-stamp conflict table above is the honest answer to the "value changed at same timestamp family" check — 21 retained CoinGecko groups, zero cumulative-class. Upstream probes ran serially by this generator immediately before rendering: Jackal LCD latest-block endpoint (upstream of the chain family) HTTP 200; estate /v1/revisions?symbol=JKL HTTP 200; estate /v1/network/JKL HTTP 200; CoinGecko jackal-protocol page (browser-verified origin; 403 here is its bot wall) HTTP 403.
propintel/gen_revision_page_jkl.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.