Skip to content
buybitcoinsmart

Glossary / Transactions & fees

Virtual byte

Also known as vbyte, vB.

Definition
A virtual byte is the unit wallets price transactions in, equal to one quarter of a transaction's weight rounded up, so every fee quote reads in satoshis per vbyte.

Specified in BIP-141.

Wallets could quote fees in weight units and never mention bytes again, but a virtual byte keeps the old arithmetic intact: a transaction with no witness data has a vsize exactly equal to its size in bytes. One block holds 1,000,000 of them. Reading a quote in sat/vB is how you tell a fair withdrawal fee from a padded one.

How it works

Virtual size comes out of one line of arithmetic: take the weight, divide by four, round up.

The gap between that number and the raw serialization is where money goes missing. A payment spending one native segwit coin into two outputs is 222 bytes on the wire, weighs 561 weight units, and prices as 141 virtual bytes. Multiply the 222 by your chosen rate rather than the 141 and you have overpaid by about 57 percent. Explorers print both figures side by side and label them size and vsize, and picking the wrong one is the most common arithmetic mistake in fee estimation.

Rounding happens once, at the end. The pieces do not come in whole numbers: a Taproot key-path input measures 57.5 vbytes, so an intermediate total can land on a half. Two wallets building the identical spend can therefore disagree by a single vbyte without either being wrong. Bitcoin Core exposes all three views of the same transaction, size, vsize, and weight, so you can check any of them yourself.

Fee estimators speak the same unit in a disguised form. estimatesmartfee answers in bitcoin per kilo-virtual-byte, so a returned rate of 0.00005000 means 5,000 satoshis buys 1,000 virtual bytes, which is 5 sat/vB. Every mempool dashboard band, every wallet slider, and every rejection message about a relay floor is denominated the same way.

Where you see it

Virtual bytes decide what an exchange withdrawal really costs, and the arithmetic is worth doing before you accept a flat fee.

Take a platform that batches: one input funding 100 customer withdrawals in a single transaction. At 31 vbytes per native segwit output, plus 68 for the input and about 11 of overhead, the whole thing is roughly 3,179 vbytes. At 5 sat/vB it costs 15,895 satoshis, or about 159 satoshis for each of the hundred people in it. A flat charge of 0.0001 BTC bills every one of them 10,000 satoshis for that space, more than sixty times their share. The relationship reverses in a rush: at 100 sat/vB the same batch costs 3,179 satoshis a head, and the flat fee becomes a subsidy. Flat withdrawal fees are a bet, and on quiet days the house wins.

The same unit prices your own housekeeping. Sweeping small coins together is billed almost entirely by input count, so a consolidation of twelve native segwit inputs into one output is about 858 vbytes whatever the amounts involved are. Do it at 2 sat/vB and it costs under 2,000 satoshis. Do it during a fee spike and it costs fifty times that for identical work.

Virtual byte vs weight unit

A virtual byte and a weight unit measure the same data on scales that differ by a factor of four, and rounding is the only place they stop being interchangeable. Consensus limits are written in weight, which is why the block ceiling is quoted as 4,000,000 units. Interfaces are written in vbytes, because 8 sat/vB is easier to hold in your head than 2 satoshis per weight unit. The ceiling function means a 561 weight unit transaction is billed as 141 vbytes rather than 140.25, so you pay for three quarters of a byte you never used. Reading a specification puts you in weight; paying for anything puts you in vbytes.

Not to be confused with

Frequently asked questions

Why does my wallet say 141 vbytes when the explorer says 222 bytes?

Both numbers are correct. 222 is the serialized length on the wire, and 141 is that length after signature data is counted at a quarter rate. Fees are charged on the smaller figure, so use the vsize whenever you multiply by a rate.

Is sat/vB the same as sat/byte?

Only for a transaction with no witness data, where the two sizes are identical. For anything spending a segwit or Taproot output the vsize is smaller, so a tool still quoting sat/byte will overstate the fee by up to a factor of four.

Read next

Related terms

More in Transactions & fees