Transaction Weight: Definition and How Bitcoin Measures Transaction Size
Transaction Weight is the measurement Bitcoin uses to determine how much space a transaction occupies within a block. Introduced with the SegWit (Segregated Witness) upgrade, transaction weight is measured in Weight Units (WU) and forms the basis for calculating a transaction's virtual size (vBytes) and transaction fees.
Transaction Weight Explained in Simple Terms
Before SegWit, Bitcoin measured transactions only by their size in bytes.
After the SegWit upgrade, the network adopted a new system called transaction weight.
Instead of treating every byte equally:
traditional transaction data receives a higher weight
witness data receives a discounted weight
This allows more transactions to fit into each block without increasing Bitcoin's original security assumptions.
Think of it like airline luggage.
A standard suitcase counts fully toward your baggage allowance, while a lighter carry-on counts less. In a similar way, witness data contributes less to a transaction's total weight.
How Transaction Weight Works
Every part of a Bitcoin transaction contributes to its total weight.
The process works as follows:
Transaction Created
The wallet constructs the transaction.Transaction Components Measured
Base transaction data and witness data are evaluated separately.Weight Calculated
Each portion contributes a specific number of Weight Units (WU).Virtual Size Determined
The total weight is converted into virtual bytes (vBytes).Transaction Fee Calculated
The fee rate (sat/vB) is multiplied by the virtual size.
The relationship between weight and virtual size is:
This is why modern Bitcoin wallets estimate fees using vBytes rather than raw bytes.
Example of Transaction Weight in Practice
Suppose Alice creates a SegWit transaction.
The transaction has:
Total weight: 560 Weight Units (WU)
Its virtual size is:
560 ÷ 4 = 140 vBytes
If the current fee rate is 25 sat/vB, the total fee becomes:
140 × 25 = 3,500 satoshis
Although the transaction physically contains more data, the witness portion receives a lower weight, reducing its effective size for fee calculation.
Why Transaction Weight Matters
Transaction weight is central to Bitcoin's block capacity and fee system.
It helps:
measure transaction resource usage
calculate virtual transaction size
determine transaction fees
increase block efficiency through SegWit
allocate block space fairly
Without transaction weight, Bitcoin could not apply different treatment to witness and non-witness data.
How Is Transaction Weight Calculated?
Bitcoin assigns different values to different parts of a transaction.
In general:
base transaction data counts more heavily
witness data receives a discount
The combined total produces the transaction's weight, measured in Weight Units (WU).
Wallet software performs these calculations automatically, so users typically see only the resulting virtual size (vBytes).
Transaction Weight vs Transaction Size
Transaction Weight
Measured in:
Weight Units (WU)
Used to:
determine block capacity
calculate virtual size
Transaction Size
Usually measured in:
virtual bytes (vBytes)
Used to:
calculate transaction fees
Although closely related, these values are not identical.
Transaction weight is the underlying measurement, while virtual size is the fee calculation unit derived from it.
Transaction Weight and Block Weight
Every Bitcoin block has a maximum weight of approximately 4 million Weight Units.
This limit replaces the original 1 MB block size restriction introduced before SegWit.
As miners build a block:
each transaction contributes its weight
transactions are added until the block reaches its maximum weight
This approach allows more efficient use of available block space while maintaining compatibility with older Bitcoin software.
Transaction Weight and SegWit
Transaction weight was introduced as part of SegWit.
Its benefits include:
discounted witness data
increased effective block capacity
lower fees for many SegWit transactions
improved scalability
backward compatibility with older nodes
Without transaction weight, SegWit could not provide these efficiency improvements.
Can Users Reduce Transaction Weight?
Yes.
Users can often reduce transaction weight by:
using Native SegWit addresses (P2WPKH)
using Taproot addresses (P2TR)
minimizing unnecessary transaction inputs
consolidating UTXOs during periods of low fees
allowing wallets to optimize transaction construction
Reducing transaction weight usually lowers the total fee required for confirmation.