← Back to Explorer

📚 API Documentation

Free, open API for accessing Zcash testnet blockchain data. No authentication required.

Base URL
https://api.mainnet.cipherscan.app/api
Rate Limit
100 req/min
Per IP address
Authentication
None Required
Free & open

🛡️Privacy & Limitations

Shielded Addresses: Due to Zcash's privacy features, shielded addresses (z-addresses) and their balances cannot be queried. Only transparent addresses (t-addresses) and unified addresses with transparent receivers are supported.

Testnet Only: This API currently serves Zcash testnet data. Mainnet API will be available at cipherscan.app/api

Rate Limiting: If you exceed 100 requests per minute, you'll receive a 429 Too Many Requests response.

Blocks

GET/api/block/:height

Get detailed information about a specific block by height

Parameters

height(number)- Block height (e.g., 3667080)

Example Request

curl https://api.mainnet.cipherscan.app/api/block/3667080

Example Response

{
  "height": 3667080,
  "hash": "0000000...",
  "timestamp": 1699123456,
  "transactions": [],
  "transactionCount": 2,
  "size": 1234,
  "difficulty": 1,
  "confirmations": 5,
  "previousBlockHash": "0000000...",
  "nextBlockHash": "0000000...",
  "version": 4,
  "merkleRoot": "...",
  "finalSaplingRoot": "..."
}
GET/api/blocks

Get a list of recent blocks with pagination

Parameters

limit(number)- Number of blocks to return (default: 50, max: 100)
offset(number)- Number of blocks to skip (default: 0)

Example Request

curl 'https://api.mainnet.cipherscan.app/api/blocks?limit=10&offset=0'

Example Response

{
  "blocks": [
    {
      "height": 3667080,
      "hash": "0000000...",
      "timestamp": 1699123456,
      "transaction_count": 2,
      "size": 1234,
      "difficulty": "41.58",
      "total_fees": "0"
    }
  ],
  "pagination": {
    "limit": 10,
    "offset": 0,
    "total": 3667080,
    "hasMore": true
  }
}

Transactions

GET/api/tx/:txid

Get detailed information about a specific transaction

Parameters

txid(string)- Transaction ID (hash)

Example Request

curl https://api.mainnet.cipherscan.app/api/tx/abc123...

Example Response

{
  "txid": "abc123...",
  "blockHeight": 3667080,
  "blockHash": "0000000...",
  "timestamp": 1699123456,
  "confirmations": 5,
  "inputs": [],
  "outputs": [],
  "totalInput": 0,
  "totalOutput": 0,
  "fee": 0,
  "size": 250,
  "shieldedSpends": 0,
  "shieldedOutputs": 0,
  "orchardActions": 0,
  "hasShieldedData": false
}
GET/api/tx/shielded

Get shielded transactions with advanced filters (pool type, fully shielded vs partial, min actions)

🔒 This endpoint is useful for finding transactions to decrypt, analyzing shielded adoption trends, or building privacy-focused analytics.

Parameters

limit(number)- Number of transactions to return (default: 50, max: 100)
offset(number)- Number of transactions to skip for pagination (default: 0)
pool(string)- Filter by pool type: "sapling", "orchard", or omit for all (optional)
type(string)- Filter by transaction type: "fully-shielded" (no transparent I/O) or "partial" (mixed), or omit for all (optional)
min_actions(number)- Minimum number of shielded actions/spends/outputs (optional)

Example Request

curl 'https://api.mainnet.cipherscan.app/api/tx/shielded?pool=orchard&type=fully-shielded&limit=10'

Example Response

{
  "transactions": [
    {
      "txid": "abc123...",
      "blockHeight": 3667080,
      "blockHash": "0000000...",
      "blockTime": 1699123456,
      "hasSapling": false,
      "hasOrchard": true,
      "shieldedSpends": 0,
      "shieldedOutputs": 0,
      "orchardActions": 2,
      "vinCount": 0,
      "voutCount": 0,
      "size": 2500,
      "type": "fully-shielded"
    }
  ],
  "pagination": {
    "total": 12564,
    "limit": 10,
    "offset": 0,
    "hasMore": true
  },
  "filters": {
    "pool": "orchard",
    "type": "fully-shielded",
    "minActions": 0
  }
}
GET/api/address/:address

Get balance and transaction history for an address (transparent only)

⚠️ Shielded addresses (z-addresses) cannot be queried due to privacy. Unified addresses must have a transparent receiver.

Parameters

address(string)- Zcash address (t-address or unified address with transparent receiver)

Example Request

curl https://api.mainnet.cipherscan.app/api/address/t1abc...

Example Response

{
  "address": "t1abc...",
  "type": "transparent",
  "balance": 123.456,
  "transactionCount": 42,
  "transactions": [
    {
      "txid": "abc...",
      "timestamp": 1699123456,
      "amount": 10.5,
      "type": "received",
      "blockHeight": 3667080,
      "from": "t1xyz...",
      "to": "t1abc..."
    }
  ]
}
GET/api/mempool

Get current mempool status and pending transactions

Example Request

curl https://api.mainnet.cipherscan.app/api/mempool

Example Response

{
  "count": 5,
  "showing": 5,
  "transactions": [
    {
      "txid": "abc...",
      "type": "shielded",
      "vin": 1,
      "vout": 2,
      "saplingSpends": 1,
      "saplingOutputs": 2,
      "orchardActions": 0,
      "size": 2500,
      "time": 1699123456
    }
  ],
  "stats": {
    "total": 5,
    "shielded": 2,
    "transparent": 3,
    "shieldedPercentage": 40
  }
}

Privacy & Analytics

GET/api/privacy-stats

Get blockchain-wide privacy statistics (shielded adoption, pool size, privacy score)

Example Request

curl https://api.mainnet.cipherscan.app/api/privacy-stats

Example Response

{
  "totals": {
    "blocks": 3667080,
    "shieldedTx": 91639,
    "transparentTx": 467611,
    "mixedTx": 79075,
    "fullyShieldedTx": 12564
  },
  "shieldedPool": {
    "currentSize": 1563095.76
  },
  "metrics": {
    "shieldedPercentage": 16.4,
    "privacyScore": 11,
    "avgShieldedPerDay": 1250,
    "adoptionTrend": "stable"
  },
  "trends": {
    "daily": [
      {
        "date": "2024-11-23",
        "shielded": 1234,
        "transparent": 5678,
        "shieldedPercentage": 17.8,
        "poolSize": 1563095.76,
        "privacyScore": 11
      }
    ]
  }
}

Network

GET/api/network/stats

Get real-time network statistics (hashrate, peers, blockchain size)

Example Request

curl https://api.mainnet.cipherscan.app/api/network/stats

Example Response

{
  "success": true,
  "mining": {
    "networkHashrate": "0.00 TH/s",
    "difficulty": 1,
    "avgBlockTime": 75,
    "blocks24h": 1152,
    "blockReward": 3.125,
    "dailyRevenue": 3600
  },
  "network": {
    "peers": 8,
    "height": 3667080,
    "protocolVersion": 170100,
    "subversion": "/Zebra:v3.0.0/"
  },
  "blockchain": {
    "height": 3667080,
    "latestBlockTime": 1699123456,
    "syncProgress": 100,
    "sizeGB": 45.23,
    "tx24h": 2500
  }
}
GET/api/network/peers

Get detailed information about connected Zcash network peers

Example Request

curl https://api.mainnet.cipherscan.app/api/network/peers

Example Response

{
  "success": true,
  "count": 8,
  "peers": [
    {
      "id": 1,
      "addr": "192.168.1.1:8233",
      "ip": "192.168.1.1",
      "inbound": false,
      "version": 170100,
      "subver": "/Zebra:v3.0.0/",
      "pingtime": 0.05
    }
  ]
}
GET/api/network/health

Check Zebra node health status

Example Request

curl https://api.mainnet.cipherscan.app/api/network/health

Example Response

{
  "success": true,
  "zebra": {
    "healthy": true,
    "ready": true,
    "healthEndpointAvailable": true
  },
  "note": "Zebra 3.0+ health endpoints available"
}

Code Examples

JavaScript / Node.js

// Fetch block data
const response = await fetch('https://api.mainnet.cipherscan.app/api/block/3667080');
const data = await response.json();
console.log(data);

// Fetch privacy stats
const stats = await fetch('https://api.mainnet.cipherscan.app/api/privacy-stats');
const privacyData = await stats.json();
console.log(privacyData.metrics.privacyScore);

Python

import requests

# Fetch block data
response = requests.get('https://api.mainnet.cipherscan.app/api/block/3667080')
data = response.json()
print(data)

# Fetch mempool
mempool = requests.get('https://api.mainnet.cipherscan.app/api/mempool')
print(f"Pending transactions: {mempool.json()['count']}")

Need Help?

If you have questions or need support, feel free to reach out: