Building a Bitcoin Wallet or Explorer Without Running Your Own Node
Bitcoin API guide: how to build a wallet, explorer or analytics tool without running your own node, using indexed REST and SQL endpoints for balances, transactions, confirmations and mempool data.
By the BitcoinDatabase team
June 2026 · 10 min read
Why a Bitcoin API beats running your own node for most apps
Reach for a Bitcoin API and you can build a wallet, block explorer or analytics tool in an afternoon. Run your own node first and you may spend that afternoon, and several more, on initial block download, storage planning and index tuning before you write a single feature. A full node is the right tool for independent validation and self-custody, but for most applications it is heavy infrastructure standing between you and the data you actually want. This guide shows how to build common Bitcoin apps against indexed REST and SQL endpoints instead. It is informational and technical, not financial advice.
What a bare node does and does not give you
Bitcoin Core validates every consensus rule and exposes a JSON-RPC interface. That is invaluable for trust. But out of the box it does not maintain an address index, so "give me the balance and history of an arbitrary address" is not a fast query. You would need to enable extra indexing, keep hundreds of gigabytes current, and operate the node around the clock. For a wallet that must verify its own transactions, that cost is justified. For an explorer or a dashboard, it is mostly overhead.
An indexed API or SQL layer flips the trade-off. The chain is already decoded into addresses, transactions, inputs and outputs, kept current as new blocks confirm, and queryable instantly. You consume data; someone else runs the heavy machinery.
Building a wallet front-end
A non-custodial wallet still generates and holds keys on the user's device, that part never goes to an API. What the API provides is the read-side: balances, UTXOs to build a spend from, fee estimates, and broadcast of the signed transaction. The user's private keys stay local.
# 1. read spendable UTXOs for the user's address
curl https://api.bitcoindatabase.com/v1/address/$ADDR/utxos \
-H "Authorization: Bearer $KEY"
# 2. sign locally with the user's key, then broadcast the raw tx
curl https://api.bitcoindatabase.com/v1/tx/broadcast \
-H "Authorization: Bearer $KEY" \
-d '{"raw":"0200000001..."}'
The wallet builds the transaction from those UTXOs, the user signs it, and you broadcast the raw hex. No node required on your side.
Building a block explorer
An explorer is mostly read endpoints stitched into pages: a block, a transaction, an address. Each is a direct lookup that returns clean JSON, so the explorer becomes a thin presentation layer over the API.
GET /v1/block/800000 # header, tx list, size, fees
GET /v1/tx/9f2c... # inputs, outputs, confirmations
GET /v1/address/bc1q... # balance, history
GET /v1/mempool # pending transactions, fee buckets
Mempool data is what makes an explorer feel live: pending transactions that have not yet confirmed, and the fee rates competing for the next block. Expose the confirmation count on each transaction so users can see how settled it is.
Building an analytics tool
For dashboards and research, SQL is the cleaner fit. Instead of paginating through thousands of API calls, you ask the question once.
-- average fee per transaction by day, last week
SELECT date(b.time) AS day,
avg(t.fee_btc) AS avg_fee_btc,
count(*) AS txs
FROM transactions t
JOIN blocks b ON b.height = t.block_height
WHERE b.time >= now() - interval '7 days'
GROUP BY day
ORDER BY day;
Because the chain is already indexed into tables, rich lists, time series, flow studies and cohort analysis are all just queries. You skip the entire build-and-maintain-an-indexer phase.
Handling confirmations and reorgs
Whatever you build, design for the fact that recent data can change. Treat zero-confirmation transactions as provisional. Decide how many confirmations your application requires before it considers a payment final, six is a common conservative choice for large amounts, fewer for small ones. A good API surfaces confirmation depth on every transaction so you do not have to compute it yourself, and it keeps balances correct across the occasional chain reorganization.
What you still own
Using an API does not mean giving up control of what matters. Private keys, signing and custody stay with you or your users. The API handles the read-heavy, infrastructure-heavy part, indexing the chain, so you can focus on product. Many teams pair an API for speed with their own node for spot-checking and validation, getting both convenience and trust.
Get started
BitcoinDatabase exposes the whole chain through REST at api.bitcoindatabase.com, plus SQL and dashboards, over one fully-indexed dataset, so you can build a wallet front-end, an explorer or an analytics tool without ever running an indexer. Try the endpoints live in the Query Console, then grab an API key and wire them into your app.
Hit Run to query the fully-indexed Bitcoin blockchain.
BTC
30-day trend
informational on-chain data · not financial advice
Query the Bitcoin blockchain yourself
Pull balances, UTXOs, transactions, on-chain metrics and fund flows from the fully indexed Bitcoin blockchain by REST API, SQL and dashboards. Indexed since 2009, new blocks within seconds, no node to run.