Bitcoin.diy
LearnReviewsToolsNews
$66,314▼3.5%
Bitcoin.diy

Stay in the Loop

Get weekly Bitcoin insights, product reviews, and guides. No spam, ever.

Unsubscribe anytime. We respect your inbox.

Bitcoin.diy

Bitcoin.diy is a Bitcoin-only education platform with indepth hardware wallet reviews, exchange comparisons, and step by step self-custody guides. Independent. No sponsors. No shitcoins!

Reviews

  • Hardware Wallets
  • Exchanges
  • Credit Cards
  • Bitcoin Loans

Learn

  • Learning Paths
  • DCA Calculator
  • Fee Estimator
  • All Tools

Community

  • YouTube
  • Twitter / X
  • Linktree
  • RSS Feed

Company

  • About
  • Newsletter
  • Affiliate Disclosure
  • Privacy Policy
  • Terms of Service
  • Legal

© 2026 Bitcoin.diy. All rights reserved.

Bitcoin is freedom money. Not financial advice.

  1. Home
  2. Learn
  3. Bitcoin Fees
Bitcoin Fundamentals

Bitcoin Transaction Fees Explained

Bitcoin fees aren't based on how much you send. They're based on how much data your transaction takes up in a block. Once you understand sat/vbyte and the mempool, paying the right fee every time is easy.

Bitcoin.diy Editorial
·March 27, 2026

The key insight

Sending 0.001 BTC and sending 1 BTC cost the same fee if the transaction is the same size. Bitcoin fees pay for block space, not for the value transferred. That's why fees are measured in satoshis per virtual byte (sat/vbyte).

How Are Bitcoin Fees Calculated?

Every Bitcoin block has a size limit. Miners fill blocks with transactions to maximize fee revenue. Transactions bid for space by setting a fee rate in satoshis per virtual byte (sat/vbyte). Higher fee rate = higher priority = faster confirmation.

Fee calculation formula

Total fee (sats) = Transaction size (vbytes) × Fee rate (sat/vbyte)

Example: a typical 250 vbyte transaction at 10 sat/vbyte costs 2,500 sats. At $100,000/BTC, that's $0.25.

Transaction typeTypical sizeAt 10 sat/vbAt 50 sat/vb
Simple send (1 input, 2 outputs)~250 vbytes2,500 sats12,500 sats
SegWit simple send~140 vbytes1,400 sats7,000 sats
Consolidation (5 inputs, 1 output)~600 vbytes6,000 sats30,000 sats
Batch send (1 input, 10 outputs)~440 vbytes4,400 sats22,000 sats

What Is the Mempool and How Does It Affect Fees?

The mempool (memory pool) is a queue of unconfirmed transactions waiting to be included in a block. Every full node maintains its own mempool. When you broadcast a transaction, it enters mempools across the network and waits for miners to pick it up.

Miners sort the mempool by fee rate (sat/vbyte) and fill blocks from the top down. The transaction offering the most sats per vbyte gets in first. When the mempool is congested (many transactions waiting), the minimum fee to get confirmed in the next block rises. When it's empty, even 1 sat/vbyte confirms quickly.

Always check the mempool before sending

Mempool.space shows live fee recommendations broken down by confirmation speed: next block, 3 blocks, and 1 hour. Use these numbers instead of your wallet's default estimates, which are often outdated.

Quiet mempool

1-5 sat/vbyte

Confirms within 1-2 hours

Normal conditions

5-20 sat/vbyte

Confirms in 1-3 blocks (~10-30 min)

Congested mempool

50-500+ sat/vbyte

Urgent: pay top rate for next block

Why Do SegWit and Taproot Addresses Pay Lower Fees?

SegWit (Segregated Witness) changed how transaction data is structured. Signature data (the “witness”) is separated from the transaction body and given a discount. This means SegWit transactions are smaller in virtual bytes (vbytes), even if their raw bytes are similar, so they pay less in fees at the same sat/vbyte rate.

FormatPrefixTypical sizeFee savings
Legacy (P2PKH)1...~250 vbytesBaseline
Wrapped SegWit (P2SH)3...~200 vbytes~20% cheaper
Native SegWit (P2WPKH)bc1q...~141 vbytes~40% cheaper
Taproot (P2TR)bc1p...~111 vbytes~55% cheaper

Sizes are for simple 1-input, 2-output transactions. Actual savings vary with transaction complexity.

If your wallet or exchange is sending to or from Legacy addresses, you're paying more than necessary. Most hardware wallets now default to Native SegWit (bc1q). Check what format your Bitcoin address uses and upgrade if you can.

What Do You Do If Your Transaction Is Stuck?

If you sent a transaction with too low a fee and it's been hours without confirmation, you have two options:

RBF: Replace-By-Fee

If you're the sender and your wallet supports RBF, you can broadcast a new version of the same transaction with a higher fee. The new version replaces the old one in the mempool. Sparrow Wallet and Electrum support this well.

Works when: you're the sender, wallet supports RBF

CPFP: Child Pays for Parent

If you received unconfirmed Bitcoin, you can spend it in a new transaction with a high fee. Miners want the child's fee, so they mine the parent too. Works even if you're the recipient and can't do RBF.

Works when: you received unconfirmed funds

How Do You Pay Less in Bitcoin Fees?

✓ Use SegWit addresses (bc1q)

Native SegWit transactions are ~40% smaller than Legacy. If your hardware wallet defaults to Legacy, switch to Native SegWit in settings.

✓ Check mempool.space before sending

Fees can vary 10-100x depending on network congestion. A transaction that costs $5 at peak congestion might cost $0.05 on a quiet weekend.

✓ Send during low-congestion periods

Bitcoin mempool is typically quieter on weekends and late at night (US time). If you're not in a rush, wait for a calm period.

✓ Batch multiple payments

If you need to send to 10 people, one transaction with 10 outputs costs much less than 10 separate transactions. Businesses paying out should always batch.

✓ Avoid UTXO consolidation at peak fees

Combining many small UTXOs into one costs more in fees. Do it when the mempool is quiet, not during a fee spike.

✓ Use Lightning for small payments

For amounts under $100, the Lightning Network is 100-1000x cheaper than on-chain. A Lightning payment typically costs 0-5 sats in fees regardless of amount.

Frequently Asked Questions

How are Bitcoin transaction fees calculated?

Bitcoin fees are based on transaction size in bytes (or virtual bytes, vbytes), not on the amount of Bitcoin sent. A simple transaction sending from one address to one recipient is ~140-250 vbytes. A complex transaction with many inputs is larger. Fees are measured in satoshis per vbyte (sat/vbyte). Multiply your transaction size by the sat/vbyte rate and you get the total fee in satoshis.

Why do Bitcoin fees fluctuate so much?

Each Bitcoin block holds a limited amount of data (about 4MB). When more people are trying to transact than can fit in the current blocks, a backlog forms in the mempool. Miners pick the highest-fee transactions first. When the mempool is busy (congested), you need to pay more to get into the next block. When it's quiet, 1 sat/vbyte often gets confirmed within an hour.

What is a good fee rate for Bitcoin transactions?

It depends on urgency. During quiet periods, 1-5 sat/vbyte confirms within a few hours. During normal conditions, 5-20 sat/vbyte confirms in 1-3 blocks. During busy periods (exchange hacks, ordinal mints, price spikes), fees can spike to 100-500+ sat/vbyte. Check mempool.space before sending to see current recommended rates.

What is the mempool and why does it matter for fees?

The mempool (memory pool) is a waiting room for unconfirmed Bitcoin transactions. Every full node maintains its own mempool. When you broadcast a transaction, it enters the mempool and waits for a miner to include it in a block. The mempool size directly determines the fee market: a large backlog drives fees up, a small backlog drives fees down. Mempool.space shows the current state in real time.

Can I send Bitcoin with zero fees?

Technically possible but unreliable. Some miners accept zero-fee transactions when the mempool is nearly empty, but most nodes won't relay them and miners won't prioritize them. In practice, you need at least 1 sat/vbyte for a transaction to be relayed and eventually confirmed. For reliable confirmation, always pay at least the minimum recommended fee from mempool.space.

What is RBF (Replace-By-Fee)?

Replace-By-Fee lets you replace an unconfirmed transaction with a new version that pays a higher fee. If you sent a transaction with too low a fee and it's stuck in the mempool, you can use RBF to bump the fee and get it confirmed faster. Not all wallets support RBF. Sparrow Wallet and Electrum have good RBF support. The transaction must have been marked as RBF-compatible when originally broadcast.

What is CPFP (Child Pays for Parent)?

Child Pays for Parent is another way to accelerate a stuck transaction. If you received Bitcoin in a low-fee transaction that's stuck, you can create a new transaction spending those (unconfirmed) outputs with a high fee. Miners see the combined fee of both transactions and have an incentive to mine the parent to collect the child's high fee. It's more complex than RBF but useful when the original sender can't do RBF.

How do Lightning Network fees compare to on-chain fees?

Lightning fees are a tiny fraction of on-chain fees. Typical Lightning payments cost 0-5 satoshis in routing fees, regardless of amount. A $100 Lightning payment might cost 1-2 sats in fees. An on-chain Bitcoin transaction typically costs 200-2000+ sats depending on mempool congestion. For small, frequent payments, Lightning is dramatically cheaper.

Do Bitcoin fees go to miners or to Bitcoin developers?

All transaction fees go to the miner who found the block containing the transaction. There are no protocol fees going to developers, foundations, or anyone else. Bitcoin Core developers are funded by grants, donations, and employers, not from transaction fees. This is one way Bitcoin differs from many proof-of-stake networks that take a protocol cut.

How can I reduce my Bitcoin transaction fees?

Several strategies help: (1) Batch multiple payments into one transaction. (2) Use SegWit or Taproot addresses, which are 30-40% cheaper than Legacy. (3) Send during low-congestion periods (often weekends or overnight US time). (4) Use coin control in Sparrow Wallet to avoid combining many small UTXOs. (5) For small amounts, use Lightning instead of on-chain. (6) Set your fee manually based on current mempool conditions rather than using wallet defaults.

Want Cheaper Fees?

For small payments use Lightning. For self-custody with SegWit addresses, a hardware wallet is the right tool.

Lightning Network GuideBitcoin Address FormatsRun a Node