Resilience
The pipeline, at a glance
Every metric walks this ladder until something trustworthy answers. Every section of the summary API carries a provenance stamp (source id, fetch time, ok/stale flags), and degraded sections add human-readable warnings rather than silently serving stale numbers.
Provenance
Per-metric sources
Six metric families, each with a documented primary, fallback, and cross-check. Hover any chip for the detail.
Price
Price history is app-owned: Binance ZECUSDT daily closes stored since March 2019, with DefiLlama for the first listed price only.
Pools & supply
Blockchair's Zcash “circulation” field is broken (it disagrees with consensus chainSupply) — excluded; Blockchair is used only for network stats and node counts.
Shield/deshield flows
Every successful refresh also persists flows into ZecStats' own store, so the series keeps working if the upstream disappears.
Network
Reachable nodes come from the Blockchair crawler; mempool from CipherScan with a Blockchair count fallback.
Halving countdown
Cross-chain
The 24h intents figure is an estimate; per-swap history is display-only. THORChain ZEC is excluded (v1): its API was unreachable during validation, and an unverifiable number does not ship.
Honesty
Six principles the data lives by
The scannable claims below are the contract; expand any card for the full reasoning.
Nulls, not guesses — missing data renders as “—”.
Why / details
ZecStats is a deterministic data pipeline: fetch from public sources, validate, persist, render. No AI in the data path, no estimates dressed up as measurements.
When a source fails, the affected section is served from the last good snapshot with a stale stamp and a human-readable warning — and if nothing trustworthy exists, the page shows “—” instead of a fabricated number.
A figure is only called wrong on two independent witnesses.
Why / details
The mechanical audit separates internal math identities — which can fail on their own — from witnessed comparisons against outside sources. A witnessed check only fails when at least two independent witnesses agree the site is off.
CipherScan, as the primary source, is never counted as a witness for itself.
Own history from day one — charts survive any upstream.
Why / details
Every successful refresh persists pool balances and daily flows into ZecStats' own SQLite store (values in exact zatoshi). The site accumulates history independent of any upstream, so charts and deltas keep working — and stay honest — even if a source disappears.
The ZEC price store works the same way: Binance daily closes backfilled to March 2019, plus live ticks.
Implausible supply is withheld, not published.
Why / details
Zcash's supply is fully determined by consensus rules: sum the block subsidies up to the current height and you get the ceiling of what can exist. ZecStats implements that emission schedule independently — the emission-math sanity gate — and checks every reported chain supply against it.
A supply figure outside the envelope (allowing for pre-Blossom timing variance) is withheld, not published — a wrong supply number is worse than none. Current supply 16.86M ZEC passes the gate.
Single-operator risk is hedged, not ignored.
Why / details
CipherScan is an indie project. It is the primary chain-data source and deserves the credit — but it is a single-operator dependency. Fallbacks, last-good snapshots, and our own history store limit the blast radius.
A self-hosted zebrad node is on the roadmap to remove the dependency entirely.
Shielded activity is invisible by design — and we say so.
Why / details
ZecStats reports pool-boundary flows (shield/deshield, turnstile migrations) and pool balance changes only. Nothing on this site estimates activity inside a shielded pool, because nothing can observe it.
What the chain does not publish, this site does not invent. See what is and isn't observable.
Verification
Audited against independent witnesses
Freshness
Refresh cadences
| Source | Cadence |
|---|---|
| CipherScan fast set (pools, network, flows, mempool, blocks) | every ~2 minutes, requests serialized at > 5.5s spacing |
| Blockchair network stats | every 10 minutes |
| CoinGecko price + market facts | every 15 minutes (facts hourly) |
| Maya Midgard | every 5 minutes |
| Halving API | every 6 hours |
| Lockbox balance (blockchain-info) | every 30 minutes |
Questions or corrections: use the feedback button on any page, or see about ZecStats. Machine-readable data: /api/zec/summary.