TRAC (OriginTrail) — the revision ledger

Generated 2026-09-02T19:35:09Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for TRAC: 8,234 observations · 32 distinct series · 4 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 19:17:19 · every one of the 8,234 rows carries a verify_url · 32 series refreshed in the last 24h (726 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 TRAC (OriginTrail) view of that product: the live ledger for TRAC — an honest measured zero as of this generation, with the full trail of the watched counter rendered below as the proof. It does not forecast, rank investment merit, or advise. Where a fact has a caveat, the caveat ships with the fact.

Provenance — where TRAC'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. TRAC does not ship a first-party stats API (catalog: has_public_stats_api=0), but it is one of the few networks in the estate with native parachain telemetry: the OriginTrail astrosat parachain RPC (astrosat-parachain-rpc.origin-trail.network) reports the chain health and finalized block height directly, the CoinGecko market family supplies price/supply/market-cap series for token contract 0xaa7a9ca87d3694b5755f213b5d04094b8d0f0a6f, and OriginTrail GitHub activity rounds out the dev-velocity family. A single first-party row (2026-08-10) was written through the same astrosat endpoint.

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 ↗
substrate_rpc1,12921,1292026-08-09 23:24:30 → 2026-09-02 19:17:19sample origin ↗
github786782026-08-09 23:42:07 → 2026-09-02 00:19:46sample origin ↗
first_party_api1112026-08-10 00:04:09 → 2026-08-10 00:04:09sample origin ↗

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

The ledger query ran during generation and returned 0 rows for TRAC — and this zero is a measured negative, with its structural reason stated plainly: the daily archive this estate holds for TRAC — 372 rows over 24 snapshots (2026-08-09 → 2026-09-01) — contains exactly ONE cumulative-class series the detector watches (finalized_block_height, from the OriginTrail astrosat parachain RPC). Every snapshot pair of that series was diffed and every pair is monotonic — the full 24-day trail is rendered below. Real watched counters exist, were watched, and none was rewritten. Where a sibling network (AR) shows a BLOCKS restatement (1,988,930 → 1,702,206, on the estate-wide ledger below), TRAC's watched chain-height counter shows nothing of the kind. The other series the archive holds are market gauges — price, market cap, volume, holders — which legitimately move both ways and are excluded by construction (table below). Zero here is the live query result plus the measured trail below, not a gap — the ledger itself is at /v1/revisions?symbol=TRAC (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=TRAC cross-check passed: the served API reports 0 row(s), matching the ledger count rendered on this page.

The trail behind the zero — finalized_block_height, every snapshot held

This is the actual counter trail the detector diffed for TRAC, rendered live from the archive: every daily snapshot of finalized_block_height (the OriginTrail astrosat parachain's finalized block height), end to end. Each step is a series that cannot decrease unless upstream rewrote history — which is exactly what makes its smooth monotonicity the proof behind the zero, and the same trail where an AR-style BLOCKS restatement would appear if it ever happened: 14,797,270 at the first snapshot climbing to 14,975,962 at the latest, every step forward.

Snapshot dateFinalized block heightSource
2026-08-0914,797,270substrate_rpc
2026-08-1014,808,691first_party_api
2026-08-1114,820,951substrate_rpc
2026-08-1214,832,982substrate_rpc
2026-08-1314,845,171substrate_rpc
2026-08-1414,857,225substrate_rpc
2026-08-1514,869,242substrate_rpc
2026-08-1614,881,279substrate_rpc
2026-08-1714,893,211substrate_rpc
2026-08-1814,905,249substrate_rpc
2026-08-1914,917,167substrate_rpc
2026-08-2014,928,982substrate_rpc
2026-08-2114,940,600substrate_rpc
2026-08-2214,952,329substrate_rpc
2026-08-2314,960,393substrate_rpc
2026-08-2414,961,563substrate_rpc
2026-08-2514,963,540substrate_rpc
2026-08-2614,965,587substrate_rpc
2026-08-2714,967,368substrate_rpc
2026-08-2814,969,151substrate_rpc
2026-08-2914,970,393substrate_rpc
2026-08-3014,972,360substrate_rpc
2026-08-3114,974,287substrate_rpc
2026-09-0114,975,962substrate_rpc

What the detector watches for TRAC — 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 TRAC. One watched series is held and was fully diffed; it produced no backward pair. That is the structural content of the zero above: the watchable counter TRAC's archive holds is clean, and the count of watched series is small — stated as measured, not inflated.

Watchlist series heldRowsDaysSource
finalized_block_height2424substrate_rpc

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. TRAC's archive holds 16 such series that moved backward across its snapshots — the node-holder count itself (HOLDERS), price, market cap, volume and CoinGecko rolling-window series — every one a legitimate gauge, none a revision.

Series (gauge / revaluation)Backward moves observedSnapshot rows held
HOLDERS924
fully_diluted_valuation_usd717
market_cap_usd717
price_change_30d_pct711
price_usd717
price_change_14d_pct611
price_high_24h_usd611
market_cap_rank511
price_from_atl_pct511
volume_24h_usd511
price_change_24h_pct411
price_change_7d_pct411
price_low_24h_usd411
market_cap_change_24h_pct211
market_cap_change_24h_usd211
price_change_1h_pct211

Same-timestamp conflicting values on record for TRAC: 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 TRAC 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. TRAC's own row is absent from this table — the zero above is why; every event shown belongs to a sibling network.

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 TRAC (graded 2026-08-20 13:54:15.000)

Served by /v1/network/TRAC — 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 riskMINIMAL88.8212
Bot riskC85
Dev velocityF0
RevenueF0
Data coverageD10
OverallC47.0142

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 — including OriginTrail's own parachain RPC, the origin of the watched counter; 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 TRAC — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=TRAC" | 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) OriginTrail's own parachain RPC — the origin of the watched counter (POST is the protocol; GET answers 405):
curl -s -H "User-Agent: kairos-check" -H "Content-Type: application/json" -X POST -d '{"jsonrpc":"2.0","id":1,"method":"chain_getFinalizedHead"}' "https://astrosat-parachain-rpc.origin-trail.network"
# 4) CoinGecko market row for OriginTrail (the market-gauge family):
curl -s -H "User-Agent: kairos-check" "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=origintrail" | python3 -m json.tool | head -30
# 5) GitHub API for the OriginTrail org (the dev-velocity upstream family):
curl -s -H "User-Agent: kairos-check" "https://api.github.com/orgs/OriginTrail" | python3 -m json.tool | head -30
# 6) This estate's public API row for TRAC (grades + provenance):
curl -s "https://kairossignal.com/v1/network/TRAC" | 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/TRAC.

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_trac.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The TRAC revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='TRAC'; the page refuses to ship if the served /v1/revisions?symbol=TRAC 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 TRAC is genuinely empty today — the single watched counter the archive holds proved monotonic under the detector's diff, a measured negative published as found, with the full trail 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. Provenance caveat, stated rather than hidden: the estate's github-family rows for TRAC store verify_url values pointing at api.github.com/repos/OriginTrail/dkg-engine, which answered HTTP 404 at generation — the repo has been renamed or moved upstream (the org endpoint and OriginTrail/dkg both answered 200, and both were probed live by this generator); the stored URL is what the collector recorded and is not silently rewritten here. Upstream probes ran serially by this generator immediately before rendering: astrosat-parachain-rpc.origin-trail.network via JSON-RPC POST chain_getFinalizedHead (the substrate_rpc family — the origin of the watched counter itself; GET answers 405, POST is the protocol) HTTP 200; api.coingecko.com /coins/markets (the CoinGecko market family) HTTP 200; CoinGecko TRAC page (browser-verified origin; 403 here is its bot wall) HTTP 403; GitHub API orgs/OriginTrail (the github family, live org endpoint) HTTP 200; GitHub API repos/OriginTrail/dkg-engine (the stored verify_url — 404 means the repo was renamed/moved upstream; stated, not hidden) HTTP 404; estate /v1/revisions?symbol=TRAC HTTP 200; estate /v1/network/TRAC HTTP 200.

Machine-generated 2026-09-02T19:35:09Z by propintel/gen_revision_page_trac.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.