Jackal Protocol (JKL) — the revision ledger

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.

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 Jackal Protocol (JKL) view of that product: the live ledger for JKL, 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 JKL's archive comes from

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.

SourceRows heldSeriesRows w/ verify_urlWindow (UTC)Sample origin
CoinGecko /coins/markets6,992246,9922026-08-09 17:15:20 → 2026-09-02 17:49:30sample origin ↗
cosmos_lcd5,868185,8682026-08-09 23:25:59 → 2026-09-02 17:42:20sample origin ↗
first_party_api4442026-08-10 00:04:09 → 2026-08-10 00:04:09sample origin ↗

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

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.

The cumulative-by-construction series the detector watches for JKL — measured, live

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.

SeriesSnapshot rowsDistinct daysBackward movesWindowMin → Max
block_height111102026-08-22 → 2026-09-0119,460,814 → 19,607,804
governance_proposals_total111102026-08-22 → 2026-09-0122 → 22
ibc_channels_total101002026-08-23 → 2026-09-01160 → 160
total_accounts101002026-08-23 → 2026-09-01322,076 → 322,080

Gauges that moved backward — deliberately NOT revisions

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 observedSnapshot rows held
INFLATION_RATE2324
inflation2324
NOT_BONDED_TOKENS1524
fully_diluted_valuation_usd1017
market_cap_usd1017
price_usd1017
price_change_30d_pct711
price_high_24h_usd711
unbonded_tokens711
price_from_atl_pct611
BONDED_TOKENS524
bonded_tokens524

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 datebonded_validators valueSource
2026-08-0930depin_first_party
2026-08-1029depin_first_party
2026-08-1130depin_first_party
2026-08-1230depin_first_party
2026-08-1330depin_first_party
2026-08-1430depin_first_party
2026-08-1529depin_first_party
2026-08-1629depin_first_party
2026-08-1729depin_first_party

Same-timestamp conflicting values on record for JKL

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.

MetricTimestamp (UTC)Distinct values recordedValuesProvenance
market_cap_change_24h_pct2026-08-28 02:22:00.0003-6.45527 | -5.93069 | -6.27089CoinGecko /coins/markets · origin ↗
market_cap_change_24h_usd2026-08-28 02:22:00.0003-3752.862815 | -3428.663454 | -3638.498621CoinGecko /coins/markets · origin ↗
price_change_14d_pct2026-08-28 02:22:00.00022.6 | 1.6CoinGecko /coins/markets · origin ↗
price_change_1h_pct2026-08-28 02:22:00.0002-0.5 | -1.6CoinGecko /coins/markets · origin ↗
price_change_1y_pct2026-08-28 02:22:00.0002-98.9 | -99CoinGecko /coins/markets · origin ↗
price_change_200d_pct2026-08-28 02:22:00.0002-92.3 | -92.4CoinGecko /coins/markets · origin ↗
price_change_24h_pct2026-08-28 02:22:00.0003-6.33015 | -6.4544 | -5.93196CoinGecko /coins/markets · origin ↗
price_change_24h_usd2026-08-28 02:22:00.0003-0.000028 | -0.000026 | -0.000028CoinGecko /coins/markets · origin ↗
price_change_30d_pct2026-08-28 02:22:00.000221.3 | 20.7CoinGecko /coins/markets · origin ↗
price_change_7d_pct2026-08-28 02:22:00.0002-23.5 | -24CoinGecko /coins/markets · origin ↗
price_low_24h_usd2026-08-28 02:22:00.00020.000416 | 0.000413CoinGecko /coins/markets · origin ↗
market_cap_change_24h_pct2026-08-30 03:43:50.00032.02044 | 2.01733 | 2.30552CoinGecko /coins/markets · origin ↗
market_cap_change_24h_usd2026-08-30 03:43:50.00031045.56 | 1043.99 | 1189.77CoinGecko /coins/markets · origin ↗
price_change_14d_pct2026-08-30 03:43:50.0002-6.4 | -5.8CoinGecko /coins/markets · origin ↗
price_change_1h_pct2026-08-30 03:43:50.00022 | 0.7CoinGecko /coins/markets · origin ↗
price_change_1y_pct2026-08-30 03:43:50.0002-98.8 | -98.9CoinGecko /coins/markets · origin ↗
price_change_200d_pct2026-08-30 03:43:50.0002-93.1 | -93CoinGecko /coins/markets · origin ↗
price_change_24h_pct2026-08-30 03:43:50.00031.87603 | 2.02044 | 2.01545CoinGecko /coins/markets · origin ↗
price_change_24h_usd2026-08-30 03:43:50.00030.000008 | 0.000008 | 0.000009CoinGecko /coins/markets · origin ↗
price_change_30d_pct2026-08-30 03:43:50.000211.4 | 11.9CoinGecko /coins/markets · origin ↗
price_change_7d_pct2026-08-30 03:43:50.0002-7.6 | -6.8CoinGecko /coins/markets · origin ↗

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

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

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.

EngineGradeScore
Node qualityA100
Dilution riskMINIMAL86.2564
Bot riskC85
Dev velocityA100
RevenueF0
Data coverageC25
OverallA58.7513

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 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"
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/JKL.

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.

Machine-generated 2026-09-02T18:38:13Z by 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.