Sats/vByte Explained
Understanding Bitcoin Transaction Fees: Sats/vByte Explained
One of the most confusing aspects of using Bitcoin for beginners is how transaction fees are calculated.
In traditional finance, wire transfer or card fees are usually calculated as a percentage of the total transaction amount (e.g., a 2% fee on a $1,000 transfer).
In Bitcoin, this is not how it works. Sending $1,000,000 of bitcoin can cost a few pennies, while sending $10 can sometimes cost $15!
This is because Bitcoin fees are based entirely on data size, measured in Satoshis per Virtual Byte (sats/vByte).
⚖️ The Post Office Analogy
Think of the Bitcoin blockchain as a physical cargo plane, and miners as post office workers.
- If you want to mail a letter, the post office does not care whether the piece of paper inside the envelope contains a cheap drawing or a legal deed worth $10,000,000.
- They only care about the physical weight and volume of the envelope.
Similarly, Bitcoin miners do not care about the monetary value of your transaction. They only care about how many kilobytes of space your transaction takes up in their candidate block.
┌──────────────────────────────────────┐ ┌──────────────────────────────────────┐
│ ✉️ TRANSACTION A: Value $10,000,000 │ │ 📦 TRANSACTION B: Value $5 │
│ Data Size: 150 vBytes (Simple) │ │ Data Size: 900 vBytes (Complex) │
│ Mining Fee: 150 * 10 sats = $0.90 │ │ Mining Fee: 900 * 10 sats = $5.40 │
└──────────────────────────────────────┘ └──────────────────────────────────────┘
📐 How Sats/vByte Math Works
To calculate your total transaction fee, wallets use this simple formula:
$$\text{Total Fee (Sats)} = \text{Transaction Data Size (vBytes)} \times \text{Feerate (sats/vByte)}$$
- vByte (Virtual Byte): This is the unit of measure for transaction data complexity on the blockchain. A standard, basic transaction with one input and two outputs is roughly 140 to 220 vBytes.
- sats/vByte: This is the price you are willing to pay for every single virtual byte of space.
If your transaction is 200 vBytes in size, and the current market congestion requires a feerate of 20 sats/vByte to clear in the next block:
* Your total fee = $200 \times 20 = 4,000 \text{ satoshis}$ (worth roughly $2.40 USD, depending on market spot rates).
🚪 How to Rescue a "Stuck" Transaction: RBF
If you set a feerate that was too low and your transaction is stuck in the mempool queue, you do not have to panic. Most modern wallets support a feature called Replace-by-Fee (RBF).
- How RBF Works: RBF is a protocol-level feature that allows you to broadcast a replacement version of your stuck transaction.
- The replacement has the exact same inputs and outputs, but it includes a higher feerate.
- Miners will notice the higher fee, discard your old stuck transaction, and mine your new high-fee transaction instead!
[!TIP] Always ensure that RBF is enabled (often a checkbox labeled "Enable Fee Bumping" or "Replace-by-Fee") in your wallet settings before clicking send! This gives you an absolute safety net to bump your transaction fee later if the network suddenly becomes congested.
TeachMeBitcoin is an ad-free, open-source educational repository curated by a passionate team of Bitcoin researchers and educators for public benefit. If you found our articles helpful, please consider supporting our hosting and ongoing content updates with a clean donation: