Methodology
Every number on this site is computed by an open, deterministic pipeline from cited public sources, on an hourly schedule. This page describes the computation exactly. When the pipeline changes, this page changes in the same release.
Data sources
- Stablecoin supply and per-chain breakdown: DefiLlama's public stablecoins
API (
stablecoins.llama.fi). USDT and USDC circulating supply, per chain. - Native token prices (ETH, SOL, TRX, POL, BNB, AVAX): CoinGecko's public price API.
- Gas prices: public JSON-RPC endpoints —
eth_gasPriceon Ethereum, Polygon PoS, BNB Smart Chain, Avalanche C-Chain and OP Mainnet (PublicNode) and on Arbitrum One and Base (official RPCs);getRecentPrioritizationFeeson Solana (official RPC); the current energy price from Tronscan's public chain-parameters API for Tron. - Regulatory items: the official press RSS feeds of the Federal Reserve, the SEC and the ECB, filtered by keyword. Nothing is scraped from third parties.
No API keys are used. Failed fetches never fabricate data: if a source is unreachable, the previous run's value is shown with a visible stale badge, and every panel carries its last-updated date.
Estimated transfer fee per chain
The estimated USD fee for a single stablecoin transfer:
- EVM chains (Ethereum, Arbitrum One, Base, Polygon PoS, BNB Smart Chain, Avalanche C-Chain, OP Mainnet):
gas price (wei) × gas units × native token USD price ÷ 10¹⁸, with a fixed estimate of 65,000 gas per ERC-20 transfer (a plain USDT transfer uses ≈63k; transfers to fresh addresses cost more). - Solana: base fee of 5,000 lamports per signature, plus the median recent prioritization fee applied to an assumed 200,000 compute units, converted at the SOL price.
- Tron: current energy price (sun per energy unit) × 65,000 energy — a typical TRC-20 USDT transfer to an established address (transfers to fresh addresses cost roughly double) — converted at the TRX price. Bandwidth costs are ignored as negligible relative to energy.
| Chain | Assumed units | Finality figure used |
|---|---|---|
| Ethereum | 65,000 gas | ~13 min — Economic finality after two epochs under proof of stake. |
| Arbitrum One | 65,000 gas | ~1 s* — Soft confirmation in about a second; full Ethereum finality follows within minutes. |
| Base | 65,000 gas | ~2 s* — Soft confirmation in seconds; full Ethereum finality follows within minutes. |
| Polygon PoS | 65,000 gas | ~5 s — Milestone-based finality, typically a few seconds. |
| Solana | 1 signature + priority fee | ~13 s — Finalized commitment, roughly 32 slots. |
| Tron | 65,000 energy | ~1 min — Considered irreversible after 19 block confirmations. |
| BNB Smart Chain | 65,000 gas | ~3 s — Fast finality (BEP-126), typically a few seconds. |
| Avalanche C-Chain | 65,000 gas | ~2 s — Avalanche consensus finalizes in about a second or two. |
| OP Mainnet | 65,000 gas | ~2 s* — Soft confirmation in seconds; full Ethereum finality follows within minutes. |
The Paycoin Index
The Paycoin Index is the blended cost of moving $1,000 of stablecoin value across the tracked rails, expressed in basis points:
- Compute the estimated transfer fee for each tracked chain, as above.
- Weight each chain's fee by the combined USDT + USDC circulating supply on that chain (DefiLlama), so the index reflects where stablecoins actually live rather than treating all chains equally.
- Divide the weighted average fee by $1,000 and express as basis points
(
index = avg fee ÷ 1000 × 10000).
Chains with missing data on a given day are excluded from the weighting that day. The full daily history is available as JSON under /data/.
The Paycoin Rail Score
Alongside the cost-only index, each tracked rail carries a Rail Score from 0 to 100 that blends three perspectives on the same cited inputs:
- For each axis — transfer fee, typical finality time, and USDT + USDC supply on the
chain — take
log₁₀of the value and normalise it linearly to [0, 1] across the tracked rails, so the best rail on that axis scores 1 and the worst scores 0. Fee and finality are inverted (cheaper and faster mean higher scores). - Blend the axes as
score = (0.5 × cost + 0.3 × liquidity + 0.2 × speed) × 100, rounded to the nearest integer.
The score is relative to the tracked set: adding or removing a rail, or a change on any rail, can move every score. It is a comparison aid, not an absolute quality measure — the headline Paycoin Index remains the pure supply-weighted cost figure, because a cost in basis points is verifiable against sources in a way a composite score is not. Finality times are the fixed typical values listed above, not live measurements.
Known limitations
- Figures cover the on-chain transfer leg only — no on/off-ramp, FX, custody or compliance costs, which dominate real-world end-to-end payment costs.
- Gas-unit and compute-unit figures are fixed typical values, not per-transaction measurements; L2 figures exclude the (small, variable) L1 data component.
- Snapshots are taken hourly; each calendar day keeps its latest observation in the daily history archive, so short-lived fee spikes between runs are not captured.
- Incumbent-rail comparison figures are static published prices with as-of dates, not live quotes, and the World Bank remittance survey measures $200 sends.
Update cadence and staleness
The pipeline runs every hour. A source older than 48 hours is labelled stale wherever its data appears. The build never invents a number: it is either freshly fetched, carried forward and labelled, or shown as unavailable.