Frequently Asked Questions

Everything about checking Bitcoin address balances at scale - address formats, pricing, privacy, and how the API works under the hood.

Getting Started

How do I check a Bitcoin address balance?
Send a POST request to /api/v1/balance/check with a JSON body containing an addresses array and your API key in the x-api-key header. The response returns confirmed and unconfirmed balances in satoshis for each address. See the API docs for examples in cURL, Python, JavaScript, Go, and PHP.
How many Bitcoin addresses can I check in a single request?
Up to 500 addresses per request. This is the highest batch limit of any public Bitcoin balance API we know of - most competitors cap at 20 or require a separate call per address. Batch requests are ideal for portfolio trackers, chain-analysis workflows, and compliance tooling.
How much does it cost?
Each address check costs 1 credit. Credits are sold at a rate of 1 satoshi = 1000 credits with no subscriptions and no minimum spend. See the pricing section for the full breakdown.
Do I need to sign up to use the API?
Yes - every request must include an API key, which requires an account. Sign-in is handled through Google OAuth so there are no passwords to manage. You can create a key and make your first request in under a minute from the dashboard.
How do I get an API key?
Sign in with Google on the dashboard, then click "Generate API key". The key is shown once - store it securely, treat it like a password, and never commit it to a public repo. You can rotate or revoke keys at any time from the same dashboard.

Bitcoin Addresses

What is the difference between Legacy, SegWit, Bech32, and Taproot addresses?
These are the four common Bitcoin address formats:
  • Legacy (P2PKH) - starts with 1. Original format, highest fees.
  • Nested SegWit (P2SH) - starts with 3. ~24% cheaper than Legacy, backward compatible.
  • Native SegWit / Bech32 (P2WPKH) - starts with bc1q. ~35% cheaper, better error detection.
  • Taproot (P2TR) - starts with bc1p. Lowest fees, improved privacy via Schnorr signatures.
All four formats are supported by the API.
Do you support all Bitcoin address formats?
Yes. The API accepts Legacy (P2PKH), Nested SegWit (P2SH), Native SegWit / Bech32 (P2WPKH), and Taproot (P2TR) addresses on Bitcoin mainnet. Invalid or malformed addresses return a 400 error without consuming credits.
Why doesn't the Bitcoin genesis address show its original 50 BTC reward?
The genesis address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa received the 50 BTC block-0 reward, but Bitcoin's code never added that coinbase transaction to the UTXO set, so those original coins are permanently unspendable and are excluded from the balance we (and every major explorer) report. The address still shows a nonzero balance, though: it has received tens of thousands of small tribute payments over the years, and those are normal spendable UTXOs that we do count.
What is the difference between confirmed and unconfirmed balance?
Confirmed balance is the sum of outputs that are already included in a block on the Bitcoin blockchain. Unconfirmed balance is the net change from mempool transactions that have been broadcast but not yet mined. Both are returned separately in the API response so you can decide how to treat pending funds.
Why are balances returned in satoshis instead of BTC?
Satoshis are integers (1 BTC = 100,000,000 satoshis). Returning integers avoids floating-point rounding errors that plague financial code - a lesson learned the hard way across the crypto industry. To display BTC, divide the satoshi value by 100,000,000 in your UI layer.

API & Technical

What is the fastest way to check thousands of Bitcoin addresses?
Batch them into groups of 500 and fire requests in parallel. A single 500-address request typically completes in under two seconds because we query self-hosted Fulcrum nodes (with ElectrumX as automatic backup) concurrently on the backend. For 10,000 addresses, 20 parallel batches finish in roughly the same time as one batch.
How is this different from Blockchain.com, BitRef, or Blockonomics?
Those services are primarily consumer-facing block explorers - great for looking up one address at a time in a browser, but they either don't expose a batch API, cap batch size far below 500, or require expensive enterprise plans. BTC Address Checker is developer-first: a single JSON endpoint, 500 addresses per call, pay-as-you-go pricing, and no KYC.
Is the balance data real-time?
Yes. Every request hits a self-hosted Fulcrum node (with ElectrumX failover) that tracks the Bitcoin mempool and chain tip in real time. There is no cache layer, so the data you receive reflects the current state of the blockchain at the moment of your request - confirmed balances update as new blocks are mined, unconfirmed balances update as mempool transactions arrive.
What happens if I send an invalid Bitcoin address?
The API returns a 400 Bad Request with a message identifying the offending address, and no credits are consumed. Validation happens before any balance lookup, so a single bad address in a batch of 500 causes the entire request to fail fast rather than returning partial results.
Can I use this API for AML or compliance screening?
The API returns balance data only - it does not flag addresses against sanctions lists or known scam databases. It is well suited as the balance-retrieval layer inside a larger compliance pipeline (pair it with a risk-scoring provider), but it is not itself a compliance product.
Are there rate limits?
Yes. Each API key is capped at 120 requests per minute; going over returns a 429. Since a single request can carry up to 500 addresses, that allows up to 60,000 address lookups per minute. Within that cap you are limited only by your credit balance, so batch addresses per request and top up credits as needed. Paid users who need a higher limit can request one at support@btcaddresschecker.com. If all backend nodes (Fulcrum and its ElectrumX failover) are temporarily unreachable, the API returns a 502 and you can retry.
How do I pay? Can I pay with Lightning?
Yes - credits are purchased with Bitcoin, including Lightning Network payments for small top-ups. There are no credit-card forms and no recurring subscriptions. Pay when you need more credits, nothing more.

Privacy & Trust

Do you store the addresses I check?
We log minimal request metadata (timestamp, API key, credit consumption) for billing and abuse prevention. Address payloads are not retained after the response is returned. We do not share request data with third parties and we do not sell or syndicate customer data.
Is it safe to check my own wallet with this API?
Yes. A Bitcoin address is public information by design - anyone with the address can look up its balance on any block explorer, and doing so does not expose your private keys, your funds, or your identity. The API only accepts public addresses; private keys or seed phrases are never required.
How accurate is the balance data?
The data comes directly from self-hosted Fulcrum nodes (with ElectrumX failover) tracking the Bitcoin mainnet consensus. Confirmed balances match the current blockchain state exactly. Unconfirmed balances reflect the mempool view of the node at query time - which, as with any mempool data, can vary slightly between nodes until transactions are mined.

Still have questions?

Dive into the full API reference, or grab an API key and start checking addresses.