Free, open API for accessing Zcash blockchain data. 51 endpoints, no authentication required.
https://api.mainnet.cipherscan.app/apiShielded Addresses: Due to Zcash's privacy features, shielded addresses (z-addresses) and their balances cannot be queried. Transparent addresses (t-addresses) are queryable. A Unified Address can be decoded client-side to reveal its receiver types, but activity is queried only through an extracted transparent receiver.
Networks: This API is available on both mainnet ( api.mainnet.cipherscan.app) and testnet ( api.testnet.cipherscan.app). The base URL above reflects the network you are currently viewing.
Rate Limiting: Limits are deployment-specific. Read the standard rate-limit response headers and honor Retry-After when the API returns 429 Too Many Requests.
Values: Units are field-defined in the legacy API; do not infer a unit from a bare number. Exact integer fields ending in Zat or Zats are decimal-string zatoshis (1 ZEC = 100,000,000 zatoshis). Separately named ZEC fields are display values and should not be used for accounting.
/api/block/:heightOrHashGet detailed information about a specific block by height or hash, including all transactions with fee, total_input, and total_output in zatoshis.
heightOrHash(number | string)requiredcurl https://api.mainnet.cipherscan.app/api/block/2500000/api/blocksGet a paginated list of recent blocks.
limit(number)offset(number)curl 'https://api.mainnet.cipherscan.app/api/blocks?limit=10&offset=0'/api/network/blocks/recentGet recent blocks with miner reward details.
limit(number)curl 'https://api.mainnet.cipherscan.app/api/network/blocks/recent?limit=5'/api/tx/:txidGet detailed information about a specific transaction, including transparent inputs/outputs, shielded activity, and cross-chain bridge data if applicable.
txid(string)requiredcurl https://api.mainnet.cipherscan.app/api/tx/abc123.../api/tx/:txid/rawGet the raw hex-encoded transaction data.
txid(string)requiredcurl https://api.mainnet.cipherscan.app/api/tx/abc123.../raw/api/tx/:txid/verboseGet the full decoded transaction from the Zebra node (raw hex + decoded JSON with all inputs, outputs, shielded data, and script details).
txid(string)requiredcurl https://api.mainnet.cipherscan.app/api/tx/abc123.../verbose/api/tx/shieldedQuery shielded transactions with advanced filters. Filter by pool type, fully-shielded vs partial, and minimum shielded actions.
limit(number)offset(number)pool(string)type(string)min_actions(number)curl 'https://api.mainnet.cipherscan.app/api/tx/shielded?pool=orchard&type=fully-shielded&limit=10'/api/shielded/listPaginated list of shielded flows (shielding and deshielding events). Uses cursor-based pagination for efficient traversal.
limit(number)cursor(string)cursor_id(string)direction(string)flow_type(string)pool(string)curl 'https://api.mainnet.cipherscan.app/api/shielded/list?flow_type=shield&pool=orchard&limit=10'/api/tx/broadcastBroadcast a signed raw transaction to the Zcash network.
rawTx(string)requiredcurl -X POST https://api.mainnet.cipherscan.app/api/tx/broadcast -H "Content-Type: application/json" -d '{"rawTx": "0500..."}'/api/mempoolGet current mempool status including all pending transactions and shielded/transparent breakdown.
curl https://api.mainnet.cipherscan.app/api/mempool/api/mempool/tx/:txidCheck if a specific transaction is in the mempool and get its details.
txid(string)requiredcurl https://api.mainnet.cipherscan.app/api/mempool/tx/abc123.../api/address/:addressGet balance, transaction count, and paginated transaction history for a transparent address.
address(string)requiredpage(number)limit(number)curl 'https://api.mainnet.cipherscan.app/api/address/t1abc...?page=1&limit=25'/api/rich-listGet the top transparent addresses ranked by balance, with concentration metrics.
limit(number)offset(number)curl 'https://api.mainnet.cipherscan.app/api/rich-list?limit=10'/api/labelsGet all known address labels (exchanges, miners, custodians, government seizures, etc.).
curl https://api.mainnet.cipherscan.app/api/labels/api/circulating-supplyGet the current ZEC circulating supply. Returns plain text by default (for aggregator compatibility) or JSON with the format parameter.
format(string)curl 'https://api.mainnet.cipherscan.app/api/circulating-supply?format=json'/api/supplyGet the current value locked in each Zcash pool (Transparent, Sprout, Sapling, Orchard).
curl https://api.mainnet.cipherscan.app/api/supply/api/supply/transparent-breakdownBreakdown of transparent supply by labeled category (exchanges, miners, custodians, etc.).
curl https://api.mainnet.cipherscan.app/api/supply/transparent-breakdown/api/network/halvingGet information about the next Zcash block reward halving, including countdown, current/next subsidy, and funding stream breakdown.
curl https://api.mainnet.cipherscan.app/api/network/halving/api/network/emissionHistorical supply emission curve and daily emission data.
period(string)curl 'https://api.mainnet.cipherscan.app/api/network/emission?period=1y'/api/network/pool-historyHistorical shielded pool sizes over time. Shows the split between Sprout, Sapling, Orchard, and Transparent pools.
period(string)curl 'https://api.mainnet.cipherscan.app/api/network/pool-history?period=90d'/api/network/statsComprehensive network statistics: mining (hashrate, difficulty, block times), network (peers, height), blockchain (size, tx volume), and supply (pool breakdown).
curl https://api.mainnet.cipherscan.app/api/network/stats/api/network/mining-metricsRolling-window mining metrics for charting: solution rate, difficulty, block times, fees, and transaction counts over recent blocks.
window(number)limit(number)curl 'https://api.mainnet.cipherscan.app/api/network/mining-metrics?window=20&limit=60'/api/network/hashrate-historyDaily-bucketed network hashrate (Sol/s) history, for long-range trend charts (weeks to a year+).
period(string)curl 'https://api.mainnet.cipherscan.app/api/network/hashrate-history?period=1y'/api/network/healthCheck the health status of the Zebra node.
curl https://api.mainnet.cipherscan.app/api/network/health/api/network/peersGet privacy-preserving aggregate information about peers currently connected to CipherScan.
curl https://api.mainnet.cipherscan.app/api/network/peers/api/network/nodesGet coarse, aggregated geographic distribution of observed Zcash nodes. Individual IPs, ISPs, cities, and precise coordinates are never returned.
curl https://api.mainnet.cipherscan.app/api/network/nodes/api/network/nodes/statsGet observed node counts, geographic concentration, trends, and Zebra/Zakura/zcashd client diversity.
curl https://api.mainnet.cipherscan.app/api/network/nodes/stats/api/network/node-historyGet privacy-preserving node-count and client-diversity snapshots.
period(string)curl "https://api.mainnet.cipherscan.app/api/network/node-history?period=30d"/api/network/feesGet current fee estimates based on ZIP-317 conventional fee structure.
curl https://api.mainnet.cipherscan.app/api/network/fees/api/blockchain-infoRaw blockchain info from the Zebra node (getblockchaininfo RPC), including consensus rules and upgrade activation heights.
curl https://api.mainnet.cipherscan.app/api/blockchain-info/api/priceGet the current ZEC/USD price and 24-hour change (sourced from CoinGecko).
curl https://api.mainnet.cipherscan.app/api/price/api/price/atGet the historical ZEC/USD price for a specific date. Falls back to the closest earlier date if exact date is unavailable.
date(string)requiredcurl https://api.mainnet.cipherscan.app/api/price/at?date=2025-01-15/api/network/protocol-statsCommitment tree sizes and nullifier set sizes for Sapling and Orchard pools, with monthly historical growth data.
curl https://api.mainnet.cipherscan.app/api/network/protocol-stats/api/privacy-statsBlockchain-wide privacy statistics: all-time totals, shielded pool sizes, Privacy Score v2 (rolling usage, quality, depth, and turnstile hygiene), and daily trends.
days(number)curl 'https://api.mainnet.cipherscan.app/api/privacy-stats?days=365'/api/analytics/anonymity-setCumulative shield and deshield transaction counts at each ZEC amount threshold — how large the anonymity crowd is at or above each size.
period(string)curl 'https://api.mainnet.cipherscan.app/api/analytics/anonymity-set?period=30d'/api/analytics/shielding-distributionHistogram of shield and deshield flows by log-spaced amount buckets — transaction counts and volumes per range.
period(string)curl 'https://api.mainnet.cipherscan.app/api/analytics/shielding-distribution?period=30d'/api/stats/shielded-countTotal count of shielded transactions since a given date. With detailed=true, includes Sapling/Orchard breakdown.
since(string)requireddetailed(boolean)curl 'https://api.mainnet.cipherscan.app/api/stats/shielded-count?since=2025-01-01&detailed=true'/api/stats/shielded-dailyDaily shielded transaction counts for a date range. Useful for building adoption trend charts.
since(string)requireduntil(string)curl 'https://api.mainnet.cipherscan.app/api/stats/shielded-daily?since=2026-04-01&until=2026-05-01'/api/blend-checkCheck how common a ZEC amount is in shielded transactions. Higher blend scores mean better privacy — your transaction blends in with more others.
amount(number)requiredcurl 'https://api.mainnet.cipherscan.app/api/blend-check?amount=1.0'/api/blend-check/splitGet recommendations for splitting an amount into common denominations to improve privacy.
amount(number)requiredcurl 'https://api.mainnet.cipherscan.app/api/blend-check/split?amount=3.7'/api/tx/:txid/linkabilityAnalyze potential linkability between a shielding transaction and subsequent deshielding transactions based on amount, timing, and other heuristics.
txid(string)requiredlimit(number)tolerance(number)curl 'https://api.mainnet.cipherscan.app/api/tx/abc123.../linkability?limit=5'/api/crosschain/statsLive cross-chain swap statistics via NEAR Intents. Shows 24h volume, inflows, outflows, and recent swaps.
curl https://api.mainnet.cipherscan.app/api/crosschain/stats/api/crosschain/trendsHistorical cross-chain volume trends over time.
period(string)granularity(string)curl 'https://api.mainnet.cipherscan.app/api/crosschain/trends?period=30d&granularity=daily'/api/crosschain/historyPaginated history of all cross-chain swaps with optional filters.
page(number)limit(number)direction(string)chain(string)curl 'https://api.mainnet.cipherscan.app/api/crosschain/history?direction=entry&chain=ethereum&limit=10'/api/name/:nameResolve a ZNS (Zcash Name Service) name to its registered address, along with marketplace listing if any.
name(string)requiredcurl https://mainnet.cipherscan.app/api/name/satoshi/api/name/:name/eventsGet the full event history for a ZNS name: claims, listings, delistings, sales, and updates.
name(string)requiredcurl https://mainnet.cipherscan.app/api/name/satoshi/events/api/pools/overviewCurrent shielded pool sizes (Sapling, Orchard, Sprout) with 24h, 7d, and 30d deltas showing supply movement between pools.
curl https://api.mainnet.cipherscan.app/api/pools/overview/api/pools/flowsTime-series shield/deshield volume data. Supports daily or hourly granularity with optional pool filtering.
period(string)pool(string)granularity(string)curl "https://api.mainnet.cipherscan.app/api/pools/flows?period=7d&granularity=hourly&pool=orchard"/api/pools/turnstileTurnstile analysis: tracks where deshielded ZEC goes after exiting a shielded pool (still held, reshielded, transferred, sent to exchange, sent to bridge).
since(string)curl "https://api.mainnet.cipherscan.app/api/pools/turnstile?since=2026-01-01"/api/transparent/exposedPaginated list of reusable transparent address balances whose public keys are exposed on-chain (quantum-vulnerable). Direct addressless P2PK and bare-multisig UTXOs are excluded from address balances and reported by the summary endpoint. Supports offset and cursor pagination.
limit(number)offset(number)cursor(string)sort(string)min_balance(number)curl "https://api.mainnet.cipherscan.app/api/transparent/exposed?limit=10&sort=balance"/api/transparent/exposed/summaryAggregate quantum-exposure statistics, separating reusable address balances from direct addressless P2PK and bare-multisig UTXOs.
curl https://api.mainnet.cipherscan.app/api/transparent/exposed/summaryconst BASE = 'https://api.mainnet.cipherscan.app';
// Latest blocks
const blocks = await fetch(BASE + '/api/blocks?limit=5');
console.log(await blocks.json());
// Privacy stats (v2 score + optional trend depth)
const stats = await fetch(BASE + '/api/privacy-stats?days=365');
const { metrics } = await stats.json();
console.log('Privacy score:', metrics.privacyScore, 'v' + metrics.scoreVersion);
console.log('Usage (30d tx share):', metrics.scoreBreakdown?.usage?.percent + '%');
// Blend check — how common is 1 ZEC?
const blend = await fetch(BASE + '/api/blend-check?amount=1.0');
console.log(await blend.json());import requests
BASE = 'https://api.mainnet.cipherscan.app'
# Circulating supply
supply = requests.get(f'{BASE}/api/circulating-supply?format=json').json()
print(f"Circulating: {supply['circulatingSupply']} ZEC")
# Rich list top 10
rich = requests.get(f'{BASE}/api/rich-list?limit=10').json()
for addr in rich['addresses']:
label = addr.get('label', 'Unknown')
print(f"#{addr['rank']} {label}: {addr['balance'] / 1e8:.2f} ZEC")
# Mempool
mempool = requests.get(f'{BASE}/api/mempool').json()
print(f"Pending: {mempool['count']} txs ({mempool['stats']['shieldedPercentage']}% shielded)")# Halving countdown curl https://api.mainnet.cipherscan.app/api/network/halving # Cross-chain swap volume curl https://api.mainnet.cipherscan.app/api/crosschain/stats # Shielded transaction count since 2025 curl 'https://api.mainnet.cipherscan.app/api/stats/shielded-count?since=2025-01-01&detailed=true'
200Success. Response body contains the requested data.400Bad request. Invalid parameters (e.g., non-numeric block height, missing required param).404Not found. The requested block, transaction, address, or name does not exist.429Rate limit exceeded. Honor the response's Retry-After and rate-limit headers.500Server error. The node or database may be temporarily unavailable.If you have questions or need support, feel free to reach out: