BitcoinDatabase.com

Query the chain · Fee estimation

Bitcoin fee estimation API and transaction fee rate data

A Bitcoin fee estimation API returns the fee rate, in satoshis per virtual byte, that a transaction needs to confirm within a target number of blocks. Set it too high and you overpay on every withdrawal. Set it too low and the payment sticks.

or try it below ↓

REST API · SQL · dashboards · address history from genesis

Query Console
btc
try:

Hit Run to query the Bitcoin blockchain.

Live from the chain for .

BTC

Balance trail

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Reading the chain ...

BitcoinDatabase indexes the confirmed chain and the unconfirmed set together, so the fee rate you quote a customer and the fee rate you later reconcile against come from the same place. GET /v1/mempool returns live mempool state with fee-rate estimates, GET /v1/tx/{txid} returns the fee and weight of any transaction, and the same data is queryable in SQL so you can audit what you actually paid over any window. Informational on-chain data only, not financial advice.

The reason this page exists is that the public fee estimators currently disagree with each other by a factor of four, and all of them sit well above what the network is charging. We read three of them within the same second on 17 September 2026, at block height 967,354, with all three providers agreeing on the tip. For the question "what gets into the next block", mempool.space returned 1 sat/vB, Blockstream Esplora returned 3.119 sat/vB, and BlockCypher returned 4,003 satoshis per kilobyte, which is 4.003 satoshis per byte. Same instant, same chain, same question, a 4.0x spread.

The spread is not the worst of it. BlockCypher’s cheapest tier, low_fee_per_kb at 1,348 sat/kB, is 35 percent more expensive than mempool.space’s most urgent tier. A team that picks the conservative provider and then picks its economy setting still pays more than a team that picks the aggressive provider and asks for the fastest confirmation available.

So we measured what the network actually charged. Across the fifteen consecutive blocks from 967,340 to 967,354, the median fee rate paid came in below Esplora’s next-block estimate in fifteen blocks out of fifteen, and below BlockCypher’s high tier in fifteen out of fifteen. The median of those fifteen block medians was 0.348 sat/vB. Against that, BlockCypher’s high tier was quoting 11.5 times the going rate and Esplora’s next-block figure was 9.0 times it.

Fourteen of those fifteen blocks confirmed at least one transaction at or below 1 sat/vB, and the cheapest confirmed transaction we recorded paid 0.307 sat/vB. That number matters because most fee guidance still in circulation, including several of the pages ranking today for this topic, states that nodes enforce a 1 sat/vB relay floor. They no longer do. Bitcoin Core pull request 33106 lowered the default minrelaytxfee and incrementalrelayfee to 0.1 sat/vB, a 90 percent cut, and Bitcoin Core 31.0, released 19 April 2026, went further and updated the fee estimator itself. Its release notes say the estimator minimum fee rate bucket "was updated from 1 sat/vB to 0.1 sat/vB, which matches the node’s default minrelaytxfee", and that estimates may now return sub-1 sat/vB values.

Bitcoin Core moved. The public REST estimators, on the evidence above, have not. mempool.space returned exactly 1 for all five of its tiers, fastest through minimum, on two separate reads minutes apart, which is an estimator pinned to a floor the protocol has already lowered rather than one tracking a market.

In money: a standard single-input, two-output native SegWit spend is about 141 vB. At the 0.348 sat/vB median actually paid, that is 49 satoshis, roughly 3.7 US cents with bitcoin at 76,488 dollars. At BlockCypher’s high tier it is 564 satoshis, about 43 cents. The gap is 515 satoshis per withdrawal. A desk pushing a thousand unbatched withdrawals a day is leaving roughly 0.005 BTC a day on the table, about 394 dollars, and a little over 143,000 dollars across a year. Batch your payouts and that shrinks a lot, which is itself an argument for measuring rather than trusting a tier label.

Two honest caveats. First, this is one reading of a quiet mempool, not a law: when real competition for block space returns, the conservative estimators will be closer to right and paying 0.3 sat/vB will strand your transaction for days. The point is not that fees are always cheap, it is that a hardcoded tier from a third party is not a substitute for reading the mempool you are actually broadcasting into. Second, a lower relay floor only helps if the nodes between you and a miner also run it. A 0.3 sat/vB transaction that will not propagate is not cheap, it is invisible.

We re-measured the next day, as that first caveat demands. At 13:03 UTC on 18 September 2026, at block 967,554 with all three providers again on the same tip, mempool.space quoted 5 sat/vB for its fastest tier, BlockCypher 2,856 sat/kB (2.856 per byte) and Esplora 1.069. The median fee rate paid across the thirty blocks 967,525 to 967,554 had risen to 1.02 sat/vB. Esplora was now close to the market, BlockCypher 2.8 times above it, and mempool.space, the lowest quote the day before, was the highest at 4.9 times. The ranking of the estimators flipped inside 24 hours. That is the strongest argument on this page for auditing your realized fee rate against confirmed blocks rather than choosing a provider and trusting it.

REST API SQL DASHBOARDS WEBHOOKS CSV EXPORT

History from genesis queryable in seconds

On-chain data not financial advice

Why it works

What you get with Fee estimation

Quote from the mempool you broadcast into

A fee estimate is a claim about a queue. Read the unconfirmed set directly, with fee rate and virtual size on every transaction, and you can see the shape of the competition rather than accepting one vendor’s single number. GET /v1/mempool returns that state over REST, and the same data is in SQL when you want to study it rather than react to it.

Audit what you actually paid

The estimate is half the job. Every indexed transaction carries its fee and its weight, so you can compute the realized fee rate on your own withdrawals over any window and compare it against the block that confirmed them. That is how you find out a provider tier has been costing you 500 satoshis a payout for a month.

Fee policy that survives a regime change

The measurements on this page describe a quiet mempool. Build the rule, not the constant: pick a target confirmation depth, read current mempool state, floor it at a rate you know will propagate, and cap it at an exposure you are willing to pay. Hardcoded tiers are what break when block space gets contested again.

Side by side

What each fee estimator returned for the next block, at one instant

All three were read within the same second on 17 September 2026 at block height 967,354, with mempool.space, Blockstream and BlockCypher all reporting the same tip. The last column compares each quote against the 0.348 sat/vB median fee rate actually paid across blocks 967,340 to 967,354.

Source Next-block quote Unit returned Versus the 0.348 sat/vB median actually paid What we measured
BitcoinDatabase Derived from live mempool state sat/vB You compare against what confirmed, in the same query GET /v1/mempool plus fee and weight on every indexed transaction
mempool.space /api/v1/fees/recommended 1 sat/vB 2.9x Returned exactly 1 for all five tiers, fastest through minimum, on two reads minutes apart
Blockstream Esplora /fee-estimates 3.119 sat/vB 9.0x Above the median paid in 15 of 15 blocks; its 1008-block bucket returns 0.1
BlockCypher /v1/btc/main 4,003 sat/kB, so 4.003 per byte 11.5x Its low tier, 1,348 sat/kB, still exceeds mempool.space fastest
Bitcoin Core estimatesmartfee, 31.0 and later Varies by node BTC/kvB Can now go below 1 sat/vB Release notes moved the minimum bucket from 1 sat/vB to 0.1 sat/vB

What it handles

The indexed Bitcoin chain, queryable your way

Look up an address, a transaction, a UTXO, the rich list or an on-chain metric, by REST API, SQL or dashboard. The same authoritative data, reconciled block-by-block against the canonical chain, without running a node.

  • Read live mempool state and fee-rate distribution
  • Pull the fee and virtual size of any confirmed transaction
  • Compute the realized fee rate on your own withdrawals
  • Compare a quoted estimate against the block that confirmed
  • Track fee rates across a block range in SQL
GET /v1/address/{addr} query result
200 · JSON
{
  "address": "bc1qxy2k…l0wdv8",
  "balance_btc": 68432.10,
  "balance_usd": 4612165420,
  "tx_count": 1284,
  "unspent_outputs": 37,
  "first_seen": "2014-02-09"
}
indexed from genesis · to the satoshi ✓ reconciled block-by-block

Why BitcoinDatabase

One platform, queryable three ways

Not a raw node to sync, not an indexer to build, and not five vendors to stitch together. The fully-indexed Bitcoin blockchain, available as a REST API, as SQL, and as dashboards, on one authoritative dataset.

REST API

Typed JSON for addresses, transactions, balances, UTXOs and metrics. Drop it into apps, wallets, explorers and agents with curl, Python or any HTTP client.

SQL access

Run SQL directly against the indexed Bitcoin dataset for ad-hoc analysis, cohorts and exports, the same data the API and dashboards read from.

Compliance-first

Informational on-chain data and analytics only. Entity labels and flow tracing are framed as tooling to support a regulated team's own review, not accusations.

Good questions

Questions about Fee estimation

Multiply the fee rate by the transaction size: fee in satoshis equals the fee rate in satoshis per virtual byte times the virtual size in vB. The fee depends on how much block space the transaction occupies, not on how much bitcoin it moves. A single-input, two-output native SegWit spend is about 141 vB, so at 2 sat/vB it costs roughly 282 satoshis whether it sends 0.01 BTC or 100 BTC.
It depends entirely on how contested block space is at that moment, which is why a fixed answer is the wrong thing to memorize. When we measured on 17 September 2026, the median fee rate paid across fifteen consecutive blocks was 0.348 sat/vB and transactions were confirming as low as 0.307. One day later, across the thirty blocks 967,525 to 967,554, the median had roughly tripled to 1.02 sat/vB. In a busy period the same target can cost fifty times that. Read current mempool state rather than reusing a number.
None of them holds the title for long, which we measured on consecutive days. On 17 September 2026 mempool.space quoted the lowest next-block rate of the three public estimators and sat closest to what blocks paid. On 18 September at block 967,554 it quoted the highest, 5 sat/vB, against BlockCypher at 2.856, Esplora at 1.069 and a 1.02 sat/vB median actually paid across thirty blocks. Audit against confirmed blocks instead of picking a favorite.
No, and this is the most common stale fact in fee guidance. Bitcoin Core pull request 33106 lowered the default minrelaytxfee and incrementalrelayfee from 1 sat/vB to 0.1 sat/vB, a 90 percent reduction. Bitcoin Core 31.0, released 19 April 2026, also moved the fee estimator minimum bucket to 0.1 sat/vB. In our sample, fourteen of fifteen blocks confirmed transactions at or below 1 sat/vB.
Often yes, but propagation is the constraint rather than the protocol. The lowest confirmed fee rate we recorded in a fifteen-block sample was 0.307 sat/vB, so miners are clearly including them. Whether yours reaches a miner depends on the nodes between you and one running the lower relay defaults. If it does not propagate, it is not cheap, it is simply invisible until you replace it.
Almost always because its fee rate is below what miners are currently taking, so it waits in the mempool while better-paying transactions are selected ahead of it. Check the fee rate you actually paid against the lowest fee rate in recent blocks. If yours is under that floor, waiting will not help on its own and you need a replacement or a child-pays-for-parent spend.
No, and the spread can be large. Reading three public estimators within the same second on 17 September 2026, the next-block figure was 1 sat/vB from mempool.space, 3.119 from Blockstream Esplora and 4.003 from BlockCypher. That is a 4.0x range on an identical question about an identical chain tip. Treat any single provider number as one opinion, not as the market price.
Bitcoin Core’s estimatesmartfee RPC returns a fee rate in BTC per kilo-virtual-byte for a given confirmation target, along with the number of blocks the estimate is actually valid for. It is built from the node’s own observed history of what confirmed and when, so a freshly started node has nothing to work with. As of Bitcoin Core 31.0 its minimum bucket is 0.1 sat/vB, so it can return sub-1 values.
Usually because the node has not observed enough confirmed transactions to populate the bucket for your target, so estimatesmartfee returns an error or a fallback instead of a rate. This is common on a node that recently finished syncing, one that was offline for a stretch, or one that just upgraded. Bitcoin Core 31.0 invalidates previously saved estimates in fee_estimates.dat, so the estimator starts tracking fresh statistics after that upgrade.
They are the same measure at different scales, and mixing them up is a common source of hundred-fold fee errors. Satoshis per virtual byte is the usual unit in wallets and block explorers. Satoshis per kilobyte, which BlockCypher returns, is a thousand times larger, so 4,003 sat/kB is 4.003 sat per byte. Bitcoin Core uses BTC per kilo-virtual-byte, which is different again.
It is the gap between the tier and the market, multiplied by payout volume. On our 17 September reading, a 141 vB withdrawal cost 49 satoshis at the median rate actually paid and 564 satoshis at BlockCypher’s high tier, a difference of 515 satoshis. A desk sending a thousand unbatched withdrawals a day would give up about 0.005 BTC daily, around 143,000 dollars over a year at 76,488 dollars per bitcoin. Batching reduces it substantially.
Run your own node if fees are a material cost line or a compliance surface, because estimatesmartfee is built from what your node actually saw and owes nothing to a vendor’s tier labels. Use an API when you need fee data alongside balances, transactions and history without operating infrastructure. The measurement that matters either way is your realized fee rate against the blocks that confirmed you.
Divide the fee by the virtual size. Take the fee in satoshis from the transaction record, take the weight and divide it by four to get virtual bytes, then divide fee by vB. Every transaction indexed here carries both, so you can compute realized fee rates across your own withdrawals in one query and compare them against the fee range of the block that included them.

Explore more

More ways to query Bitcoin with BitcoinDatabase

Stop running a node. Just query Bitcoin.

Run your first query now and get on-chain data back by REST API, SQL or dashboard, with address history back to the genesis block over REST. Informational on-chain data only, not financial advice.

See pricing

History from genesis over REST · SQL · dashboards · addresses, transactions, UTXOs, metrics