SegWit, Taproot and Bitcoin transaction weight
Connect address formats with witness data, virtual size and Taproot's key-path and script-path spending choices.
The quick answer
SegWit introduced witness data and weight-based block accounting. Taproot adds a newer witness spending design, including Schnorr signatures and optional script paths.
Virtual bytes are not raw bytes
Virtual size is transaction weight divided by four, rounded up. Witness data has different weight treatment from base data. Taproot key-path spending can avoid revealing unused script alternatives, but on-chain amounts remain public.
Step by step
- 1
Check receive and spend support
Use a wallet that understands the chosen script type. Native SegWit v0 commonly uses bc1q; Taproot uses bc1p and Bech32m.
- 2
Compare actual spending size
Use the wallet's completed estimate, not a promise that one address type is always cheaper. Input type, output type and spending path all matter.
- 3
Preserve recovery metadata
Keep the correct script type, derivation information and any required script policy. The address prefix alone is not a complete wallet backup.
Worked example
A transaction weighing 561 weight units is 141 vB after rounding up. At 6 sat/vB its fee is 846 sats, not 841.5.
Before you continue
A related question
Does switching address type move existing coins?
No. Existing outputs keep their spending conditions. Moving funds to another script type needs an actual transaction and fee.
Try it with a tool
Sources & further reading
Source links checked on 15 Oct 2026. Examples explain the mechanics; provider fees and features can change.