NexusNEXUS
Bitcoin data infrastructure: node, index and API layers, UTXO sets, fees, mempool, ordinals and runes, and how to pick a provider you can budget for.
Blog

Bitcoin Data Infrastructure: What Your App Actually Needs

Bitcoin Data Infrastructure: What Your App Actually Needs

Every Bitcoin application, from a wallet to an ordinals marketplace to a treasury dashboard, sits on top of the same small set of questions. What is the chain tip right now? Which outputs does this address control? What fee will get my transaction confirmed in three blocks? Did my broadcast actually land? Bitcoin data infrastructure is the layer that answers those questions fast, consistently, and without falling over when your traffic doubles.

This guide covers what that layer has to do, where teams get it wrong, how to decide between running your own node and buying an API, and what a production Bitcoin data API looks like in practice.

TL;DR

Bitcoin data infrastructure is three layers, and most teams only price one of them. A node gives you consensus. An index gives you the lookups Bitcoin Core does not keep. An API gives you something your application can actually call. Node providers sell you the first. A Bitcoin data API sells you all three, and the gap between them is measured in months of engineering.

What your app needs

Bitcoin Core alone

Node provider (RPC)

Bitcoin data API

Chain tip and reorg detection

Yes

Yes

Yes

UTXOs for an arbitrary address

No, needs indexing

Rarely

Yes

Confirmed balance vs mempool state

Partial

Partial

Yes

Fee estimates in sat/vB

Yes

Yes

Yes

Mempool size and fee histogram

Yes

Sometimes

Yes

Ordinals and runes

No, needs an ord indexer

No

Yes

Broadcast with usable error codes

Raw reject codes

Raw reject codes

Mapped to HTTP status

You operate the servers

Yes

No

No

Rule of thumb: if Bitcoin infrastructure is your product, run it yourself. If it is a dependency of your product, buy it, and pick a vendor whose roadmap points where yours does.

Where Nexus fits: Bitcoin, Cardano and Midnight from one account and one base URL, flat monthly pricing from $29 with a 7-day trial, and ordinals and runes indexed alongside the standard chain data. The full endpoint list is further down.

What "Bitcoin data infrastructure" actually means

The phrase gets used for three different layers, and conflating them is the first mistake teams make.

The node layer. Bitcoin Core itself. It validates blocks, holds the UTXO set, tracks the mempool, and exposes JSON-RPC. It is authoritative and it is also deliberately minimal. Bitcoin Core is not designed to answer "show me every transaction this address has ever been in" quickly.

The index layer. Software that reads the chain and builds the lookups Bitcoin Core does not maintain by default: address history, an ordinals and runes index, spent-output tracking. This is where most of the operational cost lives.

The API layer. The HTTP surface your application actually calls, with authentication, rate limiting, pagination, caching, and error semantics that make sense to a client developer.

A Bitcoin node provider sells you the first layer. A Bitcoin data API sells you all three. The difference matters enormously for how much code you end up writing, and it is the single most common reason a provider that looked cheap turns out not to be.

The seven things a Bitcoin data layer has to get right

Chain tip and reorg handling. Your application needs the current best block, and it needs to know when the chain reorganises underneath it. A one-block reorg is routine. If your data layer reports a transaction as confirmed and then the block disappears, and your API gives you no way to detect that, you will ship a bug that only appears in production.

Nexus ordinals API documentation for resolving rune metadata by ID or spaced rune name, showing Bitcoin inscription and rune indexing

Address UTXO sets. Bitcoin has no accounts. To spend, you need the exact list of unspent outputs an address controls, with values and outpoints. Bitcoin Core will not give you this for an arbitrary third-party address without extra indexing. Every wallet and every transaction builder depends on it.

Confirmed balance separate from mempool state. A user seeing an incoming payment wants to know it exists. Your coin selection code must not spend it until it confirms. Those are two different numbers, and your data layer should expose both, distinctly.

Fee estimation. Bitcoin fees move fast. You need sat/vB estimates keyed by a target confirmation window, sourced from real network conditions, or your users will overpay in quiet periods and get stuck in busy ones.

Mempool visibility. Count, virtual size, and a fee histogram tell you what the current competition for block space actually looks like. This is what powers a credible "your transaction should confirm in about X" estimate and a working replace-by-fee flow.

Ordinals and runes. If you touch Bitcoin NFTs or fungible tokens on Bitcoin, you need a separate ord-style index: which inscriptions and rune balances sit at an address, which are carried by a specific outpoint, and metadata by inscription ID or rune name. Getting this wrong means accidentally spending an inscription as ordinary sats, which is the most expensive bug in the category.

Broadcast with honest error semantics. When you submit a signed transaction, bitcoind returns reject codes. A good API maps them to HTTP status codes you can branch on, so "already in the chain" is a different outcome from "this transaction is invalid". A bad API returns 500 for both and leaves you pattern-matching an error string.

Run your own node, or buy an API?

Both are defensible. The decision comes down to what your team should be spending its time on.

Running your own stack means Bitcoin Core with txindex=1 if you need arbitrary historical transaction lookups, several hundred gigabytes of storage that grows every month, an initial block download measured in days, plus a separate ord indexer if you need inscriptions and runes. Add monitoring, alerting, an on-call rotation, and a plan for what happens when the machine dies during a fee spike. You get full control, no per-request cost, and no vendor in your dependency chain.

Buying an API means you get the index layer someone else operates, a documented HTTP surface, and a support path when something breaks at 3am. You give up control and you take on vendor risk, which is real: providers change direction, reprice, or deprioritise a chain.

The honest rule of thumb: if Bitcoin infrastructure is your product, run it yourself. If Bitcoin infrastructure is a dependency of your product, buy it, and pick a vendor whose roadmap points the same direction as yours.

How to evaluate a Bitcoin data provider

Work down this list before you write a line of integration code.

Nexus Bitcoin API reference with the endpoint tree for addresses, blocks, chain, fees, mempool, ordinals and transactions, and a live playground for GET /api/btc/chain/tip

Check the endpoint surface against your actual feature list. Not the marketing page, the API reference. If you need runes, find the runes endpoint. If you need mempool fee histograms, find that endpoint. Missing pieces become custom infrastructure you did not budget for.

Read the pricing model, not the price. Flat request pools tell you your monthly bill before you sign. Compute-credit and compute-unit models weight different methods differently, so an identical workload can cost wildly different amounts across providers, and you cannot forecast until you have run for a month. Across the wider market the same call can be metered at 1 credit by one vendor and 200 by another, which is why this is the most common source of surprise infrastructure bills.

Find the rate limits and the burst allowance. A monthly quota tells you nothing about whether your traffic spike gets throttled. You want requests per second and burst depth, published.

Look at what happens when you exceed the plan. A hard 429, overage billing, or a degraded floor are all acceptable. Not knowing which one you get is not.

Check the changelog, not the roadmap. A roadmap is a statement of intent. A changelog is a record of shipping. If the chain you care about has a changelog that stopped a year ago while another chain's is active, you have learned where the engineering effort goes.

Test the errors deliberately. Submit an invalid transaction. Query a nonexistent txid. Call an endpoint your plan does not include. The quality of those three responses tells you more about a provider than any benchmark on a landing page.

What Nexus covers on Bitcoin today

Nexus exposes Bitcoin over the same REST surface, the same X-Api-Key header, and the same docs site as its Cardano and Midnight coverage. Networks are selected with a network query parameter, and Bitcoin supports bitcoin-mainnet and bitcoin-testnet4.

Area

Endpoint

What it returns

Chain

GET /api/btc/chain/tip

Chain tip plus sync metadata

Chain

GET /api/btc/chain/latest-block

Latest fully applied block

Blocks

GET /api/btc/blocks

Most recent N blocks, descending height

Blocks

GET /api/btc/blocks/{idOrHeight}

A block by hash or height

Addresses

GET /api/btc/addresses/{address}

Address statistics across chain and mempool

Addresses

GET /api/btc/addresses/{address}/balance

Confirmed satoshi balance

Addresses

GET /api/btc/addresses/{address}/utxos

Unspent outputs for the address

Addresses

GET /api/btc/addresses/{address}/ordinals

Inscription IDs and rune balances held

Fees

GET /api/btc/fees

sat/vB estimates keyed by target block count

Mempool

GET /api/btc/mempool

Count, virtual size, and fee histogram

Ordinals

GET /api/btc/ordinals/inscriptions/{id}

Inscription metadata

Ordinals

GET /api/btc/ordinals/runes/{rune}

Rune metadata by ID or spaced name

Ordinals

GET /api/btc/ordinals/outputs/{outpoint}

Inscriptions and runes carried by an outpoint

Transactions

GET /api/btc/txs/{txid}

Transaction by txid

Transactions

GET /api/btc/txs/{txid}/hex

Raw transaction hex

Transactions

POST /api/btc/txs/submit

Broadcast a signed transaction

Two details are worth calling out, because they are exactly the sharp edges described above. The address endpoints separate confirmed balance from combined chain-and-mempool statistics, so your coin selection logic and your user-facing balance can deliberately use different sources. And the submit endpoint maps bitcoind reject codes onto HTTP status codes, so codes -22, -25, and -26 come back as 400 while -27, already in the chain, comes back as 409. You branch on the status instead of parsing an error string.

Being straight about the boundaries: this is a Bitcoin data and broadcast API. Nexus does not do server-side Bitcoin transaction construction (the transaction builder is a Cardano add-on), and it does not run Bitcoin L2 or DeFi-specific tooling. If those are your requirements, weigh a Bitcoin-specialist platform. The full reference, with a live playground on every endpoint, is at nexus.gerowallet.io/docs.

Your first Bitcoin call

Create an account, generate a key scoped to Bitcoin mainnet, and read the chain tip.

Gero Nexus account signup, the first step to generating a Bitcoin mainnet API key for the 7-day Builder trial

const res = await fetch(
'https://nexus.gerowallet.io/api/btc/chain/tip?network=bitcoin-mainnet',
{ headers: { 'X-Api-Key': 'nxs_your_api_key_here' } }
);

const tip = await res.json();
console.log(tip);

One thing to know before you start: each Nexus API key is scoped to one chain and one network. If you are building across Bitcoin and Cardano you create a key for each, under the same account, the same base URL, and the same billing. The scoping rule, and the error you get when a request and a key disagree, are documented in Authentication.

Pricing, quotas, and rate limits

Nexus prices in flat monthly tiers with published request pools and rate limits, so you can model your infrastructure cost before you integrate.

Plan

Requests per month

Rate limit

Burst

API keys

Builder, $29

2M

25 req/s

250

4

Growth, $79

10M

50 req/s

500

7

Scale, $199

50M

100 req/s

1,000

13

Enterprise, $499

200M

500 req/s

5,000

Unlimited

Metered responses carry X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers, so you can track your monthly quota from inside your own application rather than from a dashboard. Optional add-ons cover market data, wallet analytics, server-side transaction building for Cardano, a DEX aggregator, an MCP server for AI agents, and IPFS. A Dedicated tier with isolated infrastructure exists for compliance-sensitive workloads. There is no free tier, and there is a 7-day trial on the Builder plan, which is enough to run a real integration rather than a toy one.

Start building: get a key and start the 7-day Builder trial.

Common questions

Do I need my own Bitcoin node if I use a data API?
No, for the large majority of applications. You need your own node when you require full validation guarantees with no third party in the trust path, or when your query volume makes per-request pricing more expensive than operating hardware.

What is the difference between a Bitcoin node provider and a Bitcoin data API?
A node provider hands you JSON-RPC access to Bitcoin Core. A data API adds the index layer on top, which is where address history, ordinals, runes, and mempool analytics live. If a provider only offers RPC, plan to build and operate that index layer yourself.

How do I handle reorgs safely?
Track block height and hash together, never height alone. Re-verify recent confirmations against the chain tip before treating them as final, and choose a confirmation threshold that matches the value at risk.

Can I query ordinals and runes through the same API as regular Bitcoin data?
With Nexus, yes. The ordinals endpoints resolve inscriptions and rune balances by address, by outpoint, and by inscription ID or spaced rune name, using the same key and the same base URL as the rest of the Bitcoin surface.

Does Nexus support chains other than Bitcoin?
Yes. Cardano has the deepest coverage, including stake pools, assets, scripts, Conway-era governance, and a server-side transaction builder. Midnight covers transactions and DUST. See Inside the Nexus API for the full platform surface.

Where to go next

Bitcoin data infrastructure is not a single product decision. It is a set of guarantees your application will quietly depend on for as long as it exists. Pick the layer you actually need, read the changelog before you read the landing page, and prefer pricing you can forecast over pricing you have to reverse-engineer.

If you are moving off an existing provider rather than starting fresh, the endpoint-level migration map in Maestro Alternatives for Bitcoin and Cardano covers the mechanics.

To evaluate Nexus against your own workload, the fastest path is a real call against real data. Get a key and start the 7-day Builder trial, work through the Quick Start, and point it at an address whose answer you already know.