IoTeX (IOTX) — the revision ledger

Generated 2026-09-02T19:58:22Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for IoTeX: 7,940 observations · 43 distinct series · 8 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 19:49:20 · every one of the 7,940 rows carries a verify_url · 43 series refreshed in the last 24h (788 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 IOTX view of that product: the live ledger for IOTX — 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 IoTeX's archive comes from

8 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. IOTX (the catalog name here is IoTeX, category sensor; the token trades on base and ethereum under the ERC-20 contract 0x6fb3e0a217407efff7ca062d46c26e5d60a14d69) publishes no first-party stats API of its own in this catalog — the network-side series held for IOTX come from this estate's own depin_first_party collectors (the DL_FEES_* / DL_REV_* fee and revenue families), IoTeX's own public RPC (babel-api.mainnet.iotex.io — block height and gas price), Blockscout's address counters on the token contract (eth.blockscout.com — transfer, transaction and gas counters), GitHub repo telemetry (iotexproject/iotex-core), with DefiLlama's fees/dexs/chains/stablecoins series and CoinGecko's market series alongside.

SourceRows heldSeriesRows w/ verify_urlWindow (UTC)Sample origin
CoinGecko /coins/markets7,050247,0502026-08-09 17:15:20 → 2026-09-02 19:49:20sample origin ↗
DefiLlama /overview/fees25222522026-08-23 02:56:30 → 2026-09-02 18:58:01sample origin ↗
DefiLlama /overview/dexs12611262026-08-23 02:56:30 → 2026-09-02 18:58:01sample origin ↗
DefiLlama /v2/chains12611262026-08-23 02:56:30 → 2026-09-02 18:58:01sample origin ↗
DefiLlama /stablecoinchains12611262026-08-23 02:56:30 → 2026-09-02 18:58:01sample origin ↗
github12061202026-08-09 23:42:07 → 2026-09-02 18:29:01sample origin ↗
evm_blockscout966962026-08-09 23:27:47 → 2026-09-02 12:37:02sample origin ↗
iotex_rpc442442026-09-01 23:10:37 → 2026-09-02 19:27:01sample origin ↗

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

The ledger query ran during generation and returned 0 rows for IOTX. Zero here is the live query result, not a gap — the ledger itself is at /v1/revisions?symbol=IOTX (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=IOTX 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 IOTX — below, the live intersection shows the 6 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 IoTeX — 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 IOTX. The fee counters here come from the first-party collector family and DefiLlama; the block-height series is IoTeX's own RPC read; the transfer/transaction/gas counters are Blockscout reads on the token contract.

Watchlist series heldRowsDaysSource
DL_FEES_ALLTIME_USD2424depin_first_party
block_height22iotex_rpc
contract_gas_used_total1010evm_blockscout
contract_transactions_total1010evm_blockscout
fees_alltime_usd1010DefiLlama /overview/fees
token_transfers_total1111evm_blockscout

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

These are the actual counter trails the detector diffed for IOTX, rendered live from the archive. Each is a series that cannot decrease unless upstream rewrote history — and the monotonicity verdict beside each table is computed in this process from the same rows shown, so the summary cannot drift from the data. The raw runs are the evidence; the reader does not have to trust the summary.

DL_FEES_ALLTIME_USD — the cumulative all-time fees series for IoTeX collected by this estate's first-party pipeline (depin_first_party) across all 24 snapshot days. Live verdict from the rows below: flat across its entire held window — every snapshot holds the identical value.

Snapshot dateCumulative all-time fees (USD)Source
2026-08-09704,362depin_first_party
2026-08-10704,362depin_first_party
2026-08-11704,362depin_first_party
2026-08-12704,362depin_first_party
2026-08-13704,362depin_first_party
2026-08-14704,362depin_first_party
2026-08-15704,362depin_first_party
2026-08-16704,362depin_first_party
2026-08-17704,362depin_first_party
2026-08-18704,362depin_first_party
2026-08-19704,362depin_first_party
2026-08-20704,362depin_first_party
2026-08-21704,362depin_first_party
2026-08-22704,362depin_first_party
2026-08-23704,362depin_first_party
2026-08-24704,362depin_first_party
2026-08-25704,362depin_first_party
2026-08-26704,362depin_first_party
2026-08-27704,362depin_first_party
2026-08-28704,362depin_first_party
2026-08-29704,362depin_first_party
2026-08-30704,362depin_first_party
2026-08-31704,362depin_first_party
2026-09-01704,362depin_first_party

fees_alltime_usd — the same quantity, independently captured from DefiLlama's fees series for iotex — 10 snapshot days, and on every day the two families overlap they agree (see the cross-source check below). Live verdict from the rows below: flat across its entire held window — every snapshot holds the identical value.

Snapshot dateCumulative all-time fees (USD)Source
2026-08-23704,362DefiLlama /overview/fees
2026-08-24704,362DefiLlama /overview/fees
2026-08-25704,362DefiLlama /overview/fees
2026-08-26704,362DefiLlama /overview/fees
2026-08-27704,362DefiLlama /overview/fees
2026-08-28704,362DefiLlama /overview/fees
2026-08-29704,362DefiLlama /overview/fees
2026-08-30704,362DefiLlama /overview/fees
2026-08-31704,362DefiLlama /overview/fees
2026-09-01704,362DefiLlama /overview/fees

block_height — IoTeX's own chain, read from the network's public RPC (babel-api.mainnet.iotex.io) and held for 2 snapshot day(s) so far (the iotex_rpc collector began writing the daily archive on 2026-09-01, with a 2026-08-25 snapshot day retained). Live verdict from the rows below: monotone non-decreasing across its entire held window — the counter only moved forward — the chain grew, which is exactly what a live chain should do to this counter.

Snapshot dateBlock heightSource
2026-08-2551,673,495iotex_rpc
2026-09-0151,915,360iotex_rpc

contract_gas_used_total — Blockscout's address counters for the IOTX token contract (eth.blockscout.com), 10 snapshot days. Live verdict from the rows below: monotone non-decreasing across its entire held window — the counter only moved forward.

Snapshot dateValueSource
2026-08-237,262,490,035evm_blockscout
2026-08-247,265,576,958evm_blockscout
2026-08-257,265,658,110evm_blockscout
2026-08-267,267,386,747evm_blockscout
2026-08-277,267,916,290evm_blockscout
2026-08-287,268,240,868evm_blockscout
2026-08-297,268,635,092evm_blockscout
2026-08-307,268,807,586evm_blockscout
2026-08-317,269,173,935evm_blockscout
2026-09-017,270,164,853evm_blockscout

contract_transactions_total — Blockscout's address counters for the IOTX token contract (eth.blockscout.com), 10 snapshot days. Live verdict from the rows below: monotone non-decreasing across its entire held window — the counter only moved forward.

Snapshot dateValueSource
2026-08-23185,039evm_blockscout
2026-08-24185,111evm_blockscout
2026-08-25185,113evm_blockscout
2026-08-26185,158evm_blockscout
2026-08-27185,171evm_blockscout
2026-08-28185,179evm_blockscout
2026-08-29185,189evm_blockscout
2026-08-30185,193evm_blockscout
2026-08-31185,202evm_blockscout
2026-09-01185,230evm_blockscout

token_transfers_total — Blockscout's address counters for the IOTX token contract (eth.blockscout.com), 11 snapshot days. Live verdict from the rows below: monotone non-decreasing across its entire held window — the counter only moved forward.

Snapshot dateValueSource
2026-08-22390,513evm_blockscout
2026-08-23390,650evm_blockscout
2026-08-24390,909evm_blockscout
2026-08-25391,197evm_blockscout
2026-08-26391,267evm_blockscout
2026-08-27391,319evm_blockscout
2026-08-28391,374evm_blockscout
2026-08-29391,409evm_blockscout
2026-08-30391,471evm_blockscout
2026-08-31391,516evm_blockscout
2026-09-01391,550evm_blockscout

Cross-source agreement — two independent pipelines, one number

On the snapshot days where both the first-party DL_FEES_ALLTIME_USD collector and DefiLlama's fees_alltime_usd series hold a value, the two independent captures agree exactly — a live-computed check, not an assertion: 10 agreeing days, 0 divergent.

Snapshot dateFirst-party valueDefiLlama valueVerdict
2026-08-23704,362704,362agree
2026-08-24704,362704,362agree
2026-08-25704,362704,362agree
2026-08-26704,362704,362agree
2026-08-27704,362704,362agree
2026-08-28704,362704,362agree
2026-08-29704,362704,362agree
2026-08-30704,362704,362agree
2026-08-31704,362704,362agree
2026-09-01704,362704,362agree

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 or window change, not upstream rewriting history. The rolling fee and revenue windows (24h/7d/30d/1y), price, market-cap and rank classes dominate this table for IOTX — a smaller trailing sum is a smaller window, not a rewrite. Publishing them as "revisions" would be exactly the fake-metric behaviour this product exists to eliminate.

Series (gauge / revaluation)Backward moves observedSnapshot rows held
fees_1y_usd910
fully_diluted_valuation_usd817
market_cap_usd817
price_usd817
market_cap_rank611
volume_24h_usd611
price_from_atl_pct511
price_high_24h_usd511
price_low_24h_usd511
market_cap_change_24h_pct411
market_cap_change_24h_usd411
price_change_14d_pct411
price_change_1h_pct411
price_change_24h_pct411

Same-timestamp conflicting values on record for IOTX: 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 IOTX 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.

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, 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

IOTX's slice of depin_daily: 459 rows over 24 snapshot days (2026-08-09 → 2026-09-01), from 5 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.

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

Served by /v1/network/IOTX — 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 riskMINIMAL90
Bot riskC85
Dev velocityA99.569
RevenueF0
Data coverageD10
OverallB57.2069

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 DefiLlama upstream family the fee rows came from; command 4 is IoTeX's own RPC; command 5 is the CoinGecko origin page; 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 IOTX — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=IOTX" | 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) DefiLlama fees series for iotex (the fees_alltime_usd origin):
curl -s -H "User-Agent: kairos-check" "https://api.llama.fi/summary/fees/iotex" | python3 -m json.tool | head -30
# 4) IoTeX's own public RPC (the iotex_rpc origin — reachability):
curl -s -o /dev/null -w "%{http_code}\n" "https://babel-api.mainnet.iotex.io"
# 5) CoinGecko IOTX page (the market-series origin; browser-verified, bot-walled to curl):
curl -s -o /dev/null -w "%{http_code}\n" "https://www.coingecko.com/en/coins/iotex"
# 6) This estate's public API row for IOTX (grades + provenance):
curl -s "https://kairossignal.com/v1/network/IOTX" | 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/IOTX.

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_iotx.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The IOTX revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='IOTX'; the page refuses to ship if the served /v1/revisions?symbol=IOTX 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 same-stamp conflict check is the honest live answer: 0 groups in depin_onchain and 0 in depin_daily. Upstream probes ran serially by this generator immediately before rendering: CoinGecko IOTX page (browser-verified origin; 403 here is its bot wall) HTTP 403; DefiLlama fees API for iotex (the DefiLlama upstream family) HTTP 200; IoTeX's own public RPC babel-api.mainnet.iotex.io (the iotex_rpc origin) HTTP 200; estate /v1/revisions?symbol=IOTX HTTP 429; estate /v1/network/IOTX HTTP 429.

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