Understanding Bitcoin transaction fees

Updated November 10, 2026.

A fee rate tells you the cost of each virtual byte of a Bitcoin transaction. To compare the total cost, you also need the transaction's estimated virtual size. The BitcoinsAPI fee calculator combines that size with a current snapshot from mempool.space.

Calculate the total fee

Estimated fee in sats = fee rate in sat/vB × virtual size in vbytes. The calculator rounds the result up to a whole satoshi. One bitcoin is 100,000,000 satoshis, so divide a fee in sats by 100,000,000 to express it in BTC.

These are fixed examples for a 250-vbyte transaction, not live quotes:

Example fees for 250 vbytes
Rate Fee in sats Fee in BTC
2 sat/vB 500 0.00000500
5 sat/vB 1,250 0.00001250
12 sat/vB 3,000 0.00003000

At 5 sat/vB, the calculation is 5 × 250 = 1,250 sats. If a wallet quotes 0.00005 BTC per 1,000 vbytes, that is also 5 sat/vB: multiply by 100,000,000 and divide by 1,000. Check the unit before comparing estimates. For example, Bitcoin Core's estimatesmartfee returns BTC/kvB, while this calculator displays sat/vB.

Compare today's rates for 250 vbytes.

Find the right transaction size

Use the estimated virtual size in your wallet's transaction preview. The calculator's initial 140-vbyte value is an illustration, not a prediction of your transaction. Virtual size accounts for transaction weight, including the discount applied to witness data; it can differ from the raw byte count.

The amount of bitcoin sent does not by itself determine the size. A wallet spends one or more previous unspent outputs as transaction inputs and creates outputs for recipients and, often, change. The number and types of inputs and outputs affect the data required. The Bitcoin developer guide explains the relationship between inputs, change, and fees.

Suppose two wallet previews both send 0.01 BTC, but one is 140 vbytes and the other is 500 vbytes. At the same 5 sat/vB rate, their estimated fees are 700 and 2,500 sats. The 1,800-sat difference comes from size, not the payment amount. These sizes are hypothetical; use your wallet's own estimate.

Compare priorities without treating them as promises

The calculator displays mempool.space's fastest, half-hour, hour, and economy rate tiers. They are estimates based on network conditions. New transactions can arrive, miners choose which transactions to include, and blocks do not arrive at guaranteed intervals.

An “About 1 hour” label therefore does not mean your transaction will confirm in an hour. A deadline, such as an expiring invoice, may require a different choice from a transfer with flexible timing. Check both the wallet's total fee and the recipient's requirements.

The calculator's savings line compares the hour and economy rates in the same snapshot. If they are 8 and 5 sat/vB for 250 vbytes, the difference is 750 sats. That is a comparison between present options, not evidence that the rate will fall by waiting. Equal tiers mean there is no price gap in that snapshot.

The upstream recommended-fees API documents the source fields. BitcoinsAPI does not reserve a rate or submit your transaction.

Read the timestamp and stale state

“Fetched at” is when this service collected its source snapshot. The displayed age is measured when the page is rendered. The calculator does not auto-refresh; a tab left open for ten minutes still shows the earlier snapshot and age.

A cached snapshot up to 30 seconds old can be reused. When a refresh fails, the service can display a validated cached snapshot up to 120 seconds old and marks it stale after 30 seconds. Refresh before relying on a stale estimate. If no acceptable snapshot is available, the calculator shows an unavailable message instead of making up a rate.

Reload the calculator near the time you compare it with your wallet. If the two disagree, first compare units, transaction size, source time, and target priority. Different estimates need not indicate a calculation error.

What the send-or-wait result means

The optional paid API applies the fixed send-wait-v1 rule to the same public fee data. It returns wait when either the hour-to-economy gap is at least 2 sat/vB and at least 25% of the hour rate, or the mempool has at least 4,000,000 vbytes while the hour rate is at least 5 sat/vB. Otherwise it returns send.

For an hour rate of 8 and economy rate of 5 sat/vB, the gap is 3 sat/vB, or 37.5%. That meets the first condition. Its fixed 140-vbyte illustration is 420 sats; a 250-vbyte transaction has a 750-sat gap instead.

This rule does not know your deadline, wallet, transaction dependencies, or future fee conditions. “Send” is not a confirmation guarantee, and “wait” does not predict when prices will fall. Read the decision method or use the free preview API to evaluate the underlying data yourself.

If a transaction is already pending

Changing the value in this calculator cannot change a transaction already broadcast. First inspect its status in the wallet that sent it. If that wallet supports a fee increase, use its documented workflow and review the new total fee and outputs before authorizing anything.

A replacement depends on the wallet and transaction. For example, Bitcoin Core's bumpfee documentation describes replacing a wallet transaction and circumstances where it cannot proceed. Other wallets expose different controls. A fresh, separate payment is not the same as increasing the original fee and can pay the recipient twice.

BitcoinsAPI cannot cancel, accelerate, sign, or recover a transaction. It does not need a private key or seed phrase to calculate a fee. Report a calculator error through Contact, including the size, displayed rate, and approximate time.