Methodology
How we calculate the indices shown on Theta Simplified. This page explains every formula, weight, baseline, and data source — nothing is hidden.
1. Main Chain Activity Index
The Main Chain Activity Index measures observable on-chain activity on Theta's settlement layer. It combines four metrics into a single score. The index is uncapped — when the network exceeds its baselines, the score goes above 100.
FORMULA
index = txScore × 0.40 + volumeScore × 0.15 + walletScore × 0.35 + nodeScore × 0.10
Each component score = (observed value / baseline) × 100
Components
| Metric | Weight | Baseline (=100) | What it measures | Why this weight |
|---|---|---|---|---|
| Daily transactions | 40% | 42,000 | Main-chain txs in 24h | Most direct signal of on-chain usage |
| TFUEL 24h volume | 15% | $12,000,000 | Dollar volume of TFUEL traded in 24h | Market interest signal; volatile, so lower weight |
| Wallet activity | 35% | 100% | % of recent blocks containing user transactions | Shows whether real users are transacting, not just validators |
| Staking participants | 10% | 22,000 | Number of active staking nodes | Stable metric; changes slowly so lower weight |
Tier system
Data sources
Transactions → explorer-api.thetatoken.org/api/transactions/number/24
TFUEL volume → explorer-api.thetatoken.org/api/price/all (volume_24h)
Wallet activity → explorer-api.thetatoken.org/api/blocks/top_blocks (1000 blocks sampled)
Staking nodes → explorer-api.thetatoken.org/api/stake/totalAmount
Known limitations
- Baselines are calibrated against April 2026 data and will be recalibrated after 30 days of collection.
- Does not capture subchain activity, video delivery, or AI compute.
- TFUEL volume is exchange-reported and can be volatile.
- Wallet activity is sampled from the most recent 1,000 blocks, not the full 24h window.
2. Metachain Utilization Index
The Metachain Utilization Index measures real application activity across the entire Theta ecosystem — not just the main chain. It combines data from 7 sources into one weighted composite score.
FORMULA
compositeScore = Σ (chainScorei × normalizedWeighti)
Weights are normalized so they always sum to 1. If a chain is unavailable, its weight is redistributed among available chains.
Chain components
| Chain | Weight | Baseline (=100) | What it measures |
|---|---|---|---|
| Main Chain | 1.0 | 42,000 txs/day | Settlement layer — staking, governance, cross-chain transfers |
| Lavita AI | 0.7 | 100,000 txs/day | Health AI research and genomics data marketplace |
| TPulse | 0.7 | 100,000 txs/day | EdgeCloud transparency — AI compute job logs and node activity |
| Passaways | 0.5 | 100,000 txs/day | PLASM gaming and digital entertainment |
| Grove | 0.5 | 100,000 txs/day | GroveWars Web3 gaming ecosystem |
| POGSexcluded — offline since March 2026 | — | — | Digital entertainment and gaming collectibles |
| Ecosystem Growth | 0.5 | — | Proxy signals: subchain registrations, cross-chain transfers, collateral activity |
Raw weights are shown above. At runtime, all weights are normalized to sum to 1 (e.g., Main Chain 1.0 / 4.2 total ≈ 23.8%).
Inactivity exclusion: When a subchain's most recent block is older than 30 days, it is flagged as offline and removed from the composite score. Its weight is redistributed proportionally among the remaining active chains. If activity resumes, the chain automatically rejoins the composite. POGS is currently excluded under this rule.
How subchain scores are calculated
For each subchain, we fetch the 100 most recent blocks and count the transactions in them. We then extrapolate to a 24-hour estimate:
The score is then: (estimatedDailyTxs / 100,000) × 100. A subchain processing 100K txs/day scores exactly 100.
Ecosystem Growth proxy explained
The Ecosystem Growth component uses on-chain proxy signals from main-chain contracts to measure multi-chain expansion:
- Subchains registered — count from ChainRegistrar.getAllSubchainIDs() (baseline: 15, weight: 35%)
- Cross-chain transfers — total interactions across 4 Token Bank contracts (baseline: 1,000, weight: 35%)
- ChainRegistrar activity — total smart contract interactions on the registrar (baseline: 30,000, weight: 30%)
These are cumulative counts, not daily. They grow monotonically as the ecosystem expands.
Tier system
Known limitations
- Cannot distinguish bot transactions from real user activity — transaction quality is unknown.
- POGS has been inactive since March 2026 and is currently excluded from the composite score under the 30-day inactivity rule. Its weight is redistributed to the remaining active chains.
- Ecosystem Growth proxy metrics (subchain count, cross-chain transfers, ChainRegistrar activity) are cumulative — they only go up, never down.
- Off-chain activity (video delivery via Theta CDN, EdgeCloud GPU compute) is not captured.
- Subchains without public explorer APIs cannot be included.
- Subchain daily tx estimates are extrapolated from the 100 most recent blocks, which may not be representative during low-activity periods.
Coverage verification
We independently verified our coverage by comparing tracked transactions against Theta Explorer's official transaction history endpoint (/transactions/history), the same data source used by the official Theta Explorer graphs. As of April 2026, our four tracked subchains (Lavita, TPulse, Passaways, Grove) represent approximately 94% of all subchain activity. The remaining ~6% consists of inactive chains (POGS) and minor developer/testnet activity. Main chain activity is excluded from this comparison as it is tracked separately via the Main Chain Activity Index.
3. TFUEL Economics (net absorption)
The TFUEL Economics widget shows how much of daily block issuance is absorbed by burns and fees. Total TFUEL issuance has two components: fixed block rewards (1,238,400/day) and variable Edge Network rewards that depend on actual compute and video delivery activity. We cannot separate these two streams from supply data alone. We therefore show "net absorption" — how much of block issuance is offset by all burn sources combined. Days where supply grows faster than block issuance indicate higher-than-usual Edge Network payouts, not negative burn.
Daily issuance — protocol constant
TFUEL is created as block rewards at a fixed rate defined by the Theta protocol. This number is a hard constant and does not change unless Theta upgrades its protocol.
tfuelPerBlock = 86 (38 TFUEL staking + 48 THETA staking)
dailyIssuance = 14,400 × 86 = 1,238,400 TFUEL / day
Source: Theta protocol block reward specification.
Net absorption — supply-delta method
Instead of sampling individual transaction fees, we derive net absorption from the actual change in TFUEL circulating supply. This captures all burn sources automatically — on-chain gas, Edge Network payment burns (25%), and any other mechanism — without sampling individual transactions.
supplyChange = supply_today − supply_yesterday
rawAbsorption = blockIssuance − supplyChange
absorption = max(0, rawAbsorption)
// Negative rawAbsorption → "Edge spike" (clamped to 0)
absorptionRate = absorption / blockIssuance
// Shown as 7-day rolling average
Why "net absorption" instead of "burn"
Total TFUEL issuance = block rewards (fixed 1,238,400/day) + Edge Network rewards (variable). From supply data alone, we cannot distinguish between "less was burned" and "more was issued via Edge". On days when Edge payouts are unusually high, supply grows faster than block issuance — which would appear as "negative burn" if naively calculated. We avoid this by clamping to zero and labeling these as "Edge spike" days. The metric we show — net absorption — is the portion of block issuance that is verifiably absorbed, regardless of Edge variability.
Supply data comes from Theta's /api/supply/tfuel endpoint, stored daily in our database. The 7-day rolling average smooths timing artifacts from the supply endpoint not updating at exact midnight UTC.
Known limitations
- Supply endpoint timing. Theta's circulating supply endpoint does not update at exact midnight UTC. Single-day values can fluctuate depending on when the snapshot was taken. The 7-day rolling average mitigates this.
- Cannot separate burn from Edge issuance. Block issuance is a known constant, but Edge Network rewards are variable and unknown. Net absorption therefore represents a lower bound — actual burn may be higher if Edge payouts were above average that day.
- Edge spike days show 0%. When supply grows faster than block issuance (due to high Edge payouts), absorption is clamped to 0%. Real burn still occurred those days — it was just outweighed by Edge rewards.
- Requires accumulated history. The calculation needs at least 2 days of stored supply data. The 7-day average needs 8 days. New deployments will show limited data initially.
Last updated: April 2026. Baselines will be recalibrated after 30 days of data collection.
These indices are transparent, best-effort tools — not financial indicators. We show exactly what we measure, how we measure it, and what we cannot see. Use them to follow trends, not to make investment decisions.