Skip to main content
Skip to main content
Transactions

Bitcoin Transaction Fees

Every Bitcoin transaction requires a fee to be processed. Understanding how fees work helps you avoid overpaying during normal times and ensures your transactions confirm when you need them to.

How Fees Workโ€‹

Bitcoin fees are paid to miners for including your transaction in a block. Unlike traditional payment systems with fixed percentages, Bitcoin fees are based on data size, not transaction value.

Fee Basicsโ€‹

FEE = TRANSACTION SIZE (vBytes) ร— FEE RATE (sats/vB)

This means:

  • Sending 0.001 BTC costs the same as sending 100 BTC
  • Complex transactions (more inputs/outputs) cost more
  • Simple transactions are cheapest

Bitcoin fees follow transaction size, not value: sending 0.001 BTC and sending 100 BTC in the same 140 vB transaction both cost 1,400 sats at 10 sat/vB, while a 10-input transaction of 1,100 vB costs 11,000 sats

Why Fees Varyโ€‹

Bitcoin blocks have limited space (~4MB, or ~2,000-3,000 transactions). When more people want to transact than blocks can hold, a market forms:

DemandTypical Fee RateConfirmation Time
Low1-5 sats/vBNext block - hours
Normal5-20 sats/vB10 min - 1 hour
High20-100 sats/vB10-30 minutes
Extreme100-500+ sats/vBPriority inclusion

Fees fluctuate constantly based on network demand.

Understanding Fee Ratesโ€‹

sats/vB (Satoshis per Virtual Byte)โ€‹

The standard unit for Bitcoin fees:

  • sat = satoshi (0.00000001 BTC)
  • vB = virtual byte (measure of transaction size)

A typical single-input, single-output transaction is ~140 vB.

Example Calculationsโ€‹

Transaction TypeSizeAt 10 sats/vBAt 50 sats/vB
Simple (1 input โ†’ 2 outputs)~140 vB1,400 sats (~$0.60)7,000 sats (~$3)
Medium (3 inputs โ†’ 2 outputs)~380 vB3,800 sats (~$1.60)19,000 sats (~$8)
Complex (10 inputs โ†’ 2 outputs)~1,100 vB11,000 sats (~$4.70)55,000 sats (~$24)

Prices assume ~$43,000/BTC

What Affects Transaction Sizeโ€‹

Inputs vs Outputsโ€‹

Every transaction has:

  • Inputs: UTXOs you're spending (where funds come from)
  • Outputs: Where funds are going (recipients + change)

More inputs = larger transaction = higher fee

This is why UTXO management matters.

Address Typesโ€‹

Different address types have different sizes:

Address TypeInput SizeOutput SizeNotes
P2PKH (Legacy)~148 vB~34 vBStarts with 1
P2SH-P2WPKH (Nested SegWit)~91 vB~32 vBStarts with 3
P2WPKH (Native SegWit)~68 vB~31 vBStarts with bc1q
P2TR (Taproot)~57 vB~43 vBStarts with bc1p

Recommendation: Use Native SegWit (bc1q) or Taproot (bc1p) addresses for lowest fees.

Fee Estimationโ€‹

Mempool Analysisโ€‹

The mempool is the waiting room for unconfirmed transactions. Analyzing it helps estimate appropriate fees:

  • mempool.space: Visual fee estimation
  • Sparrow Wallet's built-in fee estimation
  • Your node's mempool data

Fee Estimation Strategyโ€‹

  1. Check current mempool. What fee rate is clearing?
  2. Consider urgency. Do you need next block or can you wait?
  3. Account for volatility. Fees can spike suddenly

Common Mistakesโ€‹

โŒ Overpaying during low demand: checking fees saves money
โŒ Underpaying during high demand: transaction gets stuck
โŒ Using wallet defaults blindly: often set too high

Stuck Transactionsโ€‹

If your transaction isn't confirming, you have options:

RBF (Replace-By-Fee)โ€‹

Replace your unconfirmed transaction with a higher-fee version.

Requirements:

  • Original transaction must have RBF enabled (Sparrow enables by default)
  • You control at least one input

How to use in Sparrow:

  1. Find the unconfirmed transaction
  2. Right-click โ†’ "Increase Fee"
  3. Set new fee rate
  4. Broadcast replacement

CPFP (Child-Pays-For-Parent)โ€‹

Create a new transaction that spends the unconfirmed output with a high enough fee to incentivize mining both.

When to use:

  • RBF not available
  • You're the recipient (can't RBF sender's transaction)

How it works: The new transaction's fee must cover the "deficit" of the parent transaction to make the combined package attractive to miners.

Fee Optimization Strategiesโ€‹

1. Consolidate During Low Feesโ€‹

When fees are cheap (1-5 sats/vB), combine small UTXOs:

Consolidation: one low-fee transaction turns 50 small UTXOs into a single large one, so the next payment needs 1 input instead of 50; do it at 1-5 sat/vB and only with same-source coins, because consolidation links histories

See UTXO Consolidation for details.

2. Batch Transactionsโ€‹

If sending to multiple recipients, batch them:

Batching: three separate 140 vB payments to Alice, Bob and Charlie total 420 vB, while one transaction paying all three is about 200 vB, 52% smaller and cheaper at any fee rate

3. Time Your Transactionsโ€‹

Fee patterns by time:

  • Weekends: Often lower fees
  • US business hours: Often higher fees
  • After difficulty adjustments: Variable

4. Use Appropriate Address Typesโ€‹

Switching from Legacy to SegWit addresses can save 30-40% on fees.

5. Enable RBFโ€‹

Always enable RBF (Replace-By-Fee) so you can bump fees if needed. Sparrow Wallet enables this by default.

Lightning Networkโ€‹

For small, frequent transactions, the Lightning Network offers:

  • Near-instant confirmation
  • Fees of ~1 sat or less
  • No on-chain footprint per transaction

Tradeoff: Requires channel management and isn't suitable for cold storage.

Fee Calculatorโ€‹

Quick reference for planning:

Your GoalRecommended Strategy
Send immediatelyPay current "high priority" rate
Send within hoursPay "medium priority" rate
Send within a dayPay "low priority" rate
Consolidate UTXOsWait for under 5 sats/vB
Large cold storage depositUse batching, wait for low fees

Summaryโ€‹

  • Fees are based on transaction size, not value
  • Use SegWit or Taproot addresses for lower fees
  • Check the mempool before setting fees
  • Consolidate UTXOs during low-fee periods
  • Enable RBF on all transactions
  • Batch when sending to multiple recipients

Understanding fees helps you save money and ensures your transactions confirm when you need them.

Related Topics