← Back to all topics

Transaction Fees

Why fees vary wildly and how to avoid overpaying

The Confusion

"Why did my $10 transaction cost $5 in fees, but my friend sent $10,000 for only $2?"

Bitcoin fees are based on data size, not transaction value. A transaction sending $1 million takes the same space as one sending $1 — so they can have the same fee.

Block Space is Limited

🚌 Think: A Bus with Limited Seats

Every ~10 minutes, a bus (block) arrives that can fit ~4,000 passengers (transactions). If 10,000 people want to board, they bid for seats. Those offering the highest tips get on first.

Your "size" on the bus isn't how much money you're carrying — it's how much luggage (data) you have. More UTXOs = more luggage = need more space = higher fee.

Block size limit: ~4 MB of data every 10 minutes. That's roughly 2,000-4,000 transactions depending on complexity. When demand exceeds this, fees rise.

Fee Rate: Satoshis per Virtual Byte

Fees are measured in sat/vB (satoshis per virtual byte). A typical transaction is 140-250 vBytes.

~140
Simple TX (vBytes)
~250
Complex TX (vBytes)
10-100+
Typical sat/vB

Fee Calculator

Low Priority High Priority
Simple (1 input) Complex (many inputs)
4,000
Fee (satoshis)
$1.60
Fee (USD approx)

How Miners Choose Transactions

Miners are profit-maximizing. They sort transactions by fee rate and fill the block from highest to lowest until it's full.

Block #812,345 Capacity: ~4 MB
TX: 3a8f... (180 vB) 150 sat/vB ✓
TX: 7c2b... (220 vB) 120 sat/vB ✓
TX: 9e4d... (195 vB) 50 sat/vB ✓
TX: 1f8a... (250 vB) 35 sat/vB ✓
TX: 5b3c... (300 vB) 5 sat/vB ⏳ (waiting)
Key insight: It doesn't matter if your transaction is moving $1 or $1 billion. What matters is how much you're paying per byte of block space.

Why Transaction Size Varies

What makes a transaction bigger?

UTXO consolidation tip: If you have many small UTXOs, consider consolidating them into one when fees are low. Otherwise, spending them later will be expensive.

Fee Estimation Strategies

Check the mempool

The mempool is the "waiting room" for transactions. Tools like mempool.space show current fee rates and estimated confirmation times.

100+
50-100
20-50
1-20

Example mempool: fee rates in sat/vB

Priority levels

RBF: Replace-By-Fee

If your transaction is stuck, you can "bump" it by broadcasting a new version with a higher fee. The original gets replaced. Most wallets support this.

When Fees Spike

Pro tip: If your transaction isn't urgent, wait for fees to drop. Early morning UTC on weekends is often cheapest.