Workspace / Research tools
Guide

Bitcoin virtual bytes versus bytes

Bitcoin wallets and explorers can display transaction size in bytes, weight units or virtual bytes. These measurements are related, but they answer different questions. Raw bytes describe serialized data size. Weight accounts for the different treatment of witness and non-witness data. Virtual size expresses that weight on a scale used by common fee-rate displays. If your chosen fee rate is in sat/vB, multiply it by virtual bytes, not by an unrelated raw-size field. Checking the unit avoids a straightforward but costly estimation error.

Explicit assumptionsFormula & methodology includedNo account required

How weight becomes virtual size

BIP141 defines transaction weight as three times the base transaction size plus the total transaction size. Base size excludes witness serialization; total size includes it. Virtual size is weight divided by four and rounded upward to the next integer. The calculation is a size convention, not a compression of the transaction sent over the network.

For an illustrative transaction with a 120-byte base size and a 250-byte total size, weight is 3 × 120 + 250 = 610 weight units. Dividing by four gives 152.5, so virtual size is 153 vB. Those sample measurements describe the formula, not a standard size for every Bitcoin payment.

Match the fee rate to the correct size field

At an assumed 6 sat/vB, a 153-vB transaction corresponds to 918 satoshis. Multiplying the same rate by the example's 250 raw bytes instead would produce 1,500 satoshis, which is a different fee. The arithmetic is correct only when the size unit matches the rate unit.

The Bitcoin Core wallet development guide explicitly recommends comparing virtual sizes for fee estimation. For a transaction without witness data, virtual size equals its raw size. For a transaction with witness data, the figures can differ, which is why one universal conversion from raw bytes is not sufficient.

The BTC amount sent does not determine transaction size

A transaction's structure includes inputs, outputs and the data needed to spend those inputs. Sending the same Bitcoin amount can require different structures, so an amount in BTC is not enough to infer its vsize. Ask the wallet to estimate the actual transaction being prepared.

Use a signed transaction's reported virtual size when reconciling an actual fee, or the wallet's estimate when planning one. A chosen sat/vB rate is not a confirmation-time guarantee. An exchange withdrawal charge may also follow its own pricing rather than equal the fee of your individual on-chain transaction.

Questions about this tool

Can I divide the raw transaction byte count by four?

Not in general. Virtual size comes from transaction weight, which depends on both base size and total size. Dividing the full raw size by four ignores the different weighting of non-witness data.

Is vB another name for a satoshi?

No. A virtual byte measures transaction size for this fee convention. A satoshi measures Bitcoin value. A rate such as sat/vB links those two different units.

Sources and further reading

BIP141: Transaction weight and virtual transaction size ↗Bitcoin Core: SegWit wallet transaction fee estimation ↗

Find a tool or explanation