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

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:

ChainAssumed unitsFinality 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:

  1. Compute the estimated transfer fee for each tracked chain, as above.
  2. 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.
  3. 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:

  1. 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).
  2. 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

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.