How do Bitcoin transaction fees work?
Bitcoin fees confuse people because they do not work like bank charges. Sending a large amount can cost less than sending a small one, and the same transfer can cost wildly different amounts on different days. Once you know what you are actually paying for, both stop being surprising.
You are paying for space, not value
Every block has a limited capacity, and every transaction takes up a certain amount of that capacity depending on how much data it contains. Fees are bids for that space, quoted per unit of transaction size rather than as a percentage of the amount sent.
This is why the value being moved is almost irrelevant to the cost. A transfer of a large sum built from one previous payment is smaller, and therefore cheaper, than a small transfer stitched together from many tiny ones.
The mempool sets the price
Unconfirmed transactions wait in the mempool, a queue each node keeps of everything it has heard about but not yet seen in a block. Miners naturally select the highest-paying transactions first.
So the fee you need is set by competition. When the queue is short, a low fee confirms quickly. When it is congested, the same fee can sit unconfirmed for hours. Since blocks arrive roughly every ten minutes on average, capacity does not expand to meet demand; the price does.
Why your inputs matter
Wallets spend previous incoming payments, called inputs. Paying with many small inputs means a physically larger transaction and a larger fee, in the same way that paying a bill in loose change takes longer to count.
If you accumulate through lots of tiny purchases, you will eventually pay for that when you consolidate. Some wallets let you combine inputs deliberately during a quiet period, which is cheaper than doing it accidentally during a busy one.
Practical ways to pay less
Four things help. Send when the mempool is quiet rather than during a volatility spike. Use a wallet that estimates fees properly and lets you choose a slower confirmation target. Use modern address formats, which are more space-efficient. And batch payments where you can.
Two features are worth knowing if something goes wrong: replace-by-fee lets you resend a stuck transaction with a higher fee, and child-pays-for-parent lets the recipient effectively bump it. Both beat waiting indefinitely.
Fees in the long run
Fees are a cost to users and, increasingly, the incentive that pays for security. As the block subsidy halves every 210,000 blocks, fees are designed to take over as the main source of miner income.
To see what a fee actually costs you in your own currency, run the figure through the converter. For more background, see our guides to mining and the halving.
Frequently asked questions
Why does a small transfer sometimes cost more than a large one?
Because fees are based on transaction size in data, not the amount sent. A small payment assembled from many previous small inputs contains more data than a large payment from one input, so it costs more.
What happens if I set the fee too low?
The transaction waits in the mempool until the queue clears enough for it to be included, which can take hours. If your wallet supports replace-by-fee you can resend the same transaction with a higher fee instead of waiting.
Do I pay a fee to receive bitcoin?
No. The sender pays the network fee. If you later spend what you received, that spending transaction will have its own fee, and its size will depend partly on how the coins arrived.