Bitcoin transaction fees explained: sat/vB, vbytes and how to pay less
Understand one formula and you'll never get a stuck transaction by accident again.
The formula
fee (sats) = transaction size (vB) × fee rate (sat/vB)
A satoshi (sat) is 0.00000001 BTC. A virtual byte (vB) measures how much block space a transaction uses. A typical native SegWit payment with one input and two outputs is about 141 vB, so at 10 sat/vB it costs 1,410 sats.
Notice what's missing: the amount. Sending 0.001 BTC or 100 BTC costs the same if the transaction has the same structure.
What makes a transaction bigger
- Inputs — each coin (UTXO) you spend adds ~58–148 vB depending on address type. Many small coins = big transaction.
- Outputs — each recipient or change output adds ~31–43 vB.
- Address type — legacy (1…) inputs are the largest; native SegWit (bc1q) and Taproot (bc1p) are far smaller thanks to the witness discount.
| Address type | Input size | Output size |
|---|---|---|
| Legacy P2PKH (1…) | ~148 vB | ~34 vB |
| Nested SegWit (3…) | ~91 vB | ~32 vB |
| Native SegWit (bc1q…) | ~68 vB | ~31 vB |
| Taproot (bc1p…) | ~58 vB | ~43 vB |
What sets the fee rate
Supply and demand. Blocks hold about 1 million vB and arrive roughly every 10 minutes. When more transactions want in than fit, users bid up the rate. Our fee estimator shows the live rates for the next block, 30 minutes, 1 hour and economy — and lets you compute the total fee for your transaction type.
How to avoid overpaying (and getting stuck)
- Check live fees right before sending instead of relying on a wallet's stale default.
- Choose “normal” or “economy” when you're not in a hurry, but keep RBF available so you can bump later.
- Use bc1q or bc1p addresses.
- Consolidate small coins when fees are low, so future payments are smaller.
- Withdraw from exchanges in fewer, larger transactions.
Already sent with too low a fee?
See how to speed up a Bitcoin transaction, or check your TXID for a direct recommendation.