What is sat/vB (satoshis per virtual byte)?

The unit Bitcoin fees are quoted in: satoshis paid per virtual byte of transaction size, not per coin sent.

Not yet verifiedHow we verify

3 min read

In this entry

The unit Bitcoin fees are quoted in: satoshis paid per virtual byte of transaction size, not per coin sent.

Virtual bytes come from the weight system introduced by SegWit, which counts witness data at a quarter of its raw size (source: BIP-141). Wallets multiply your chosen rate by the transaction's size to produce the fee.

The single most useful thing to understand about Bitcoin fees is that value is irrelevant to them. A transaction moving $10 and one moving $10,000,000 cost the same if they are the same size. Fees price block space, and block space is consumed by bytes.

How it works

  1. Block space is the scarce resource. Blocks are capped by weight, so miners fill them with the transactions paying the most per unit of space.
  2. Size depends on structure. A transaction's size is driven by how many inputs it spends and how many outputs it creates. Many small inputs make a large transaction.
  3. Witness data counts less. SegWit moved signature data into a witness section counted at a quarter weight, which is why sending from a SegWit address costs less than sending the same value from a legacy one (source: BIP-141). See segwit and taproot.
  4. You choose a rate, not an amount. Wallets show sat/vB options tied to expected confirmation times, then multiply by size.
  5. The mempool sets the going rate. When pending demand exceeds block space, the clearing rate rises. See mempool.

This is why coin control matters. A wallet holding one large output spends cheaply; the same balance held as forty small ones costs far more to move, because every input adds bytes.

Example

Illustrative arithmetic at 20 sat/vB.

TransactionApproximate sizeFee at 20 sat/vB
1 input, 2 outputs (SegWit)141 vB2,820 sats
5 inputs, 2 outputs (SegWit)421 vB8,420 sats
20 inputs, 2 outputs (SegWit)1,341 vB26,820 sats

Illustrative sizes; exact figures depend on address types and script structure.

All three could be moving the same total amount. The last costs nearly ten times the first because it spends twenty inputs instead of one. If those twenty inputs came from twenty small deposits, consolidating them later at a quiet moment costs less than being forced to spend them all during a busy one.

Why it matters when you buy

Two practical consequences. Small, frequent Bitcoin withdrawals build up small outputs that are expensive to spend later, so fewer larger withdrawals usually cost less overall. And a withdrawal fee quoted as a flat amount by an exchange is that exchange's policy, not the network's rate, so comparing them is worth doing. The fee comparison covers exchange charges, and moving crypto off an exchange covers the transfer itself.

network fee — the total this rate produces; segwit — why witness data counts less; coin control — choosing which inputs to spend; mempool — where the clearing rate is set; replace by fee — raising the rate after sending; dust — outputs too small to spend economically.

Questions

Why does my fee not depend on the amount I send?

Because you are paying for block space, and space is consumed by transaction bytes rather than by value. The amount appears in a field of fixed size, so it makes no difference to the cost.

Why is my wallet's fee higher than someone else's at the same rate?

Because your transaction is larger, almost always due to spending more inputs. Address type matters too: legacy addresses produce larger transactions than SegWit or Taproot ones.

What rate should I choose?

Whatever clears at the speed you need, which changes hour to hour. Mempool monitoring sites show current rates by target confirmation time, and a payment with no deadline can wait for a quiet period.