Methodology

How every number on this site is produced. Each section below gives the formula behind the numbers shown.

This site is operated by easy2stake, which also runs a Celestia validator. All figures come from public chain data and our probe by the formulas on this page; no validator is treated differently. This is an independent explorer, not affiliated with the Celestia Foundation. Visits are counted with Cloudflare Web Analytics, which uses no cookies and collects no personal data.

Three kinds of data

chain
Derived from public archival RPCs: MsgPayForFibre transactions, their events, validator sets at each promise height, escrow events and params. Every chain figure is recomputable from the stored raw transactions.
probe
Measured by our own probe every 5 minutes from one network location: DNS, TCP connect, TLS 1.3 handshake, and the certificate's validator identity. It shows what we can reach from there, not consensus, and is labelled wherever it appears. A registered host that is, or resolves only to, a non-public address (private, loopback, link-local) is never contacted and counts as not reachable.
geo
Country, city and network operator of a probed IP from the DB-IP Lite database (IP Geolocation by DB-IP, CC BY 4.0). Free databases can misplace cloud and anycast addresses.

Minimum sample: a percentage, rank or median is shown only from 20 samples (slots, probes or blobs), with n next to it; below that the count is shown and the rate is left out.

Blobs and payments

  • Only successful transactions count. Failed PayForFibre transactions are not visible to the indexer.
  • Blob size is the padded upload size from the payment promise (at least 256 KiB).
  • Payment = 650,000 + 45,000 × ⌈size / 262,144⌉ utia, debited from the publisher's escrow. The tx fee is separate and paid by the tx signer.
  • The publisher is the escrow owner named in the payment promise, which can differ from the tx signer.
  • Escrow ledger = deposits − executed withdrawals − payments − promise-timeout charges, checked against the on-chain balance.
  • Cost per MiB = escrow payments ÷ padded size published, over the window. The tx fee is not included.
  • Inclusion lag = inclusion height − promise height, in blocks (median per chart bucket).
  • Peak hour = the hour with the most bytes published in the window, as bytes per second.

Endorsements and storage

  • Validator signatures are positional over the validator set at the promise height. The indexer verifies every signature; the chain stops checking once 2/3 of the voting power has signed.
  • Signed share = verified signatures / slots in the window, shown only from 20 slots. The client builds the PFF as soon as signatures reach 2/3 of the voting power, so a PFF may lack signatures from validators that stored their rows. A missing signature on one blob is not a fault.
  • Endorsed stake per blob = stake of the validators whose signature we verified / total stake of the validator set at the promise height. A blob settles once it reaches 2/3.
  • Active set = bonded and not jailed. Network median and rank of the signed share are over validators with at least 20 slots in the window.
  • Signing levels: ≥ 90 %, 50–90 % and < 50 % of slots, under 20 slots not rated. These are participation levels, not grades. “Who signs, by stake” adds up the stake share of the active validators in each level.
  • Assigned rows per blob = ⌈4096 × 3 × power / total power⌉, at least 148 and at most 4096 (celestia-app row assignment). Small validators sit at the floor.
  • Storage budget = full-stake storage budget × assigned rows / 4096, as the Fibre server computes it, with rows from the current validator set (the server re-reads it every minute; synced here every 10 minutes). The network budget is the sum over validators.
  • Shard bytes = 65,548 + rows × (row size + 516): row data plus 64 KiB of RLCs and a 14-level proof per row. Retained data counts signed slots of blobs still within their serving window, so it is a lower bound.
  • Capacity used = retained data / network storage budget (an estimate, since retained data is a lower bound).

Endpoints

  • Stake serving Fibre = stake of active validators whose registered endpoint answered the latest probe round / active stake. Below 2/3, Fibre cannot settle blobs.
  • Reachability = reachable probes / (all probes − probe errors − probes of validators without a registered host). Probe errors are our own failures; a validator without a host has nothing to reach, so it has no rate rather than 0 %. Over the last 24 hours it is shown in 2-hour buckets, so each point has at least 20 probes.
  • Each round the probe also connects to a few public control hosts. When far fewer endpoints than in the last good round accept a connection and most control hosts fail too, the round is recorded as a probe error (our network was down), not as an outage of every validator. When the control hosts work, the drop is counted as real. Older rounds without control hosts: a round where no endpoint accepts a connection, or a sharp drop in the first rounds after the probe was not running, counts as our error. The rule is re-applied to all stored rounds when it changes.
  • Handshake = TCP connect + TLS 1.3 handshake of one probe; p50 is the median over reachable probes in the window, shown from 20 of them.
  • “Last restart” is derived: a Fibre server creates a new certificate valid for 365 days at every start, so start ≈ expiry − 365 days.
  • Outages are runs of consecutive failed probes; they end at the next reachable probe. When our probe did not run for more than two intervals, what happened in that time was not observed: the outage stops at its last failed probe and its duration is shown as a lower bound (“≥”, “then not observed”).

Concentration

HHI = Σ (stake share of each country or operator)², over registered, bonded providers with a known location. 1 means one group holds all stake; lower means more spread out. Top-3 share is the stake held by the three largest groups. The operator is the AS organisation name, so several AS numbers of one company count once.