Bitcoin Address Types
The different address formats used in Bitcoin, from legacy (1...) to SegWit (bc1q...) to Taproot (bc1p...), each with different features and fee costs.
Key Takeaways
- Bitcoin has five main address types: P2PKH (1...), P2SH (3...), P2WPKH (bc1q... 42 chars), P2WSH (bc1q... 62 chars), and P2TR (bc1p...). Each generation improves on the last in fees, features, or privacy.
- Fee savings are significant: native SegWit (P2WPKH) saves roughly 38% on transaction fees compared to legacy P2PKH, while Taproot (P2TR) saves about 32% for simple transactions and even more for complex multisig setups.
- Taproot (P2TR) is the recommended address type today: it provides the strongest privacy properties via Schnorr signatures and MAST, making multisig, single-sig, and complex scripts look identical on-chain.
What Are Bitcoin Address Types?
A Bitcoin address type defines the format and spending rules for receiving bitcoin. Each type corresponds to a specific script template that determines how funds locked at that address can be spent. Over Bitcoin's history, new address types have been introduced through soft forks and BIPs (Bitcoin Improvement Proposals) to improve efficiency, enable new features, and reduce transaction fees.
You can identify an address type by its prefix: addresses starting with 1 are legacy P2PKH, those starting with 3 are P2SH, bc1q indicates native SegWit (v0), and bc1p indicates Taproot (v1). Each type uses a different encoding scheme and script structure, but all are valid Bitcoin addresses that can send to and receive from any other type.
For a deeper technical comparison, see the Bitcoin address types research article.
How Each Address Type Works
P2PKH: Legacy Addresses (1...)
Pay-to-Public-Key-Hash is Bitcoin's original address format, present since the genesis block in January 2009. P2PKH addresses start with 1 and use Base58Check encoding. The scriptPubKey locks funds to a hash of the recipient's public key:
OP_DUP OP_HASH160 <20-byte pubKeyHash> OP_EQUALVERIFY OP_CHECKSIGTo spend, the owner provides their full public key and an ECDSA signature. The network verifies that the public key hashes to the correct value and that the signature is valid. A typical 1-input, 2-output P2PKH transaction is about 226 virtual bytes (vbytes). P2PKH serves as the baseline for fee comparisons with newer types.
P2SH: Script Hash Addresses (3...)
Pay-to-Script-Hash, introduced in BIP 16 and activated in April 2012, moves complex spending conditions into a hashed "redeem script." Addresses start with 3 and use Base58Check encoding. The output simply checks whether the provided script hashes to the committed value:
OP_HASH160 <20-byte scriptHash> OP_EQUALP2SH is commonly used for multisig setups and wrapped SegWit (P2SH-P2WPKH), where the redeem script contains SegWit spending rules inside a P2SH wrapper. A wrapped SegWit transaction uses about 167 vbytes for a 1-input, 2-output spend, saving roughly 26% compared to P2PKH. P2SH remains important for backward compatibility with older wallets that do not support native SegWit.
P2WPKH: Native SegWit Addresses (bc1q...)
Pay-to-Witness-Public-Key-Hash is the native SegWit single-signature format, activated in August 2017 at block 481,824. Defined by BIP 141 (consensus rules) and BIP 173 (Bech32 encoding), P2WPKH addresses start with bc1q and are exactly 42 characters long. The scriptPubKey is compact:
OP_0 <20-byte pubKeyHash>Signature and public key data move to the witness section of the transaction, where each byte counts as only 0.25 weight units instead of 1.0 for non-witness data. This "witness discount" is the source of fee savings. A typical P2WPKH transaction uses about 141 vbytes, saving roughly 38% compared to P2PKH. The derivation path follows BIP 84 (m/84'/0'/0').
P2WPKH is currently the most widely used address type, with SegWit transactions accounting for over 90% of all Bitcoin transactions. Bech32 encoding provides built-in error detection and is case-insensitive, reducing user errors.
P2WSH: Native SegWit Script Addresses (bc1q... 62 chars)
Pay-to-Witness-Script-Hash is the native SegWit format for complex scripts such as multisig or HTLCs in Lightning channels. Also activated in August 2017, P2WSH addresses start with bc1q but are 62 characters long (compared to P2WPKH's 42), because they commit to a 32-byte SHA-256 hash rather than a 20-byte HASH160:
OP_0 <32-byte scriptHash>Like P2WPKH, the witness data benefits from the weight discount. A 2-of-3 multisig P2WSH input uses about 104 vbytes, significantly less than the equivalent legacy multisig. P2WSH is widely used in Lightning Network commitment transactions and channel funding outputs.
P2TR: Taproot Addresses (bc1p...)
Pay-to-Taproot is the newest address type, activated on November 14, 2021, at block 709,632. Defined across three BIPs: BIP 340 (Schnorr signatures), BIP 341 (Taproot construction), and BIP 342 (Tapscript). Addresses start with bc1p, are 62 characters long, and use Bech32m encoding (BIP 350):
OP_1 <32-byte tweaked-pubkey>P2TR introduces two spending paths. The key-path spend requires only a single Schnorr signature for the tweaked public key, using about 57.5 vbytes per input. The script-path spend reveals a specific leaf script and Merkle proof from a MAST (Merkelized Alternative Script Tree), keeping unused branches hidden. A key-path 1-input, 2-output transaction is about 154 vbytes, saving roughly 32% compared to P2PKH. The derivation path follows BIP 86 (m/86'/0'/0').
Fee Comparison
Transaction fees depend on the size in virtual bytes. The table below compares a standard 1-input, 2-output single-signature transaction across address types:
| Address Type | vBytes | Weight (WU) | Fee Savings vs P2PKH |
|---|---|---|---|
| P2PKH (1...) | 226 | 904 | Baseline |
| P2SH-P2WPKH (3...) | 167 | 665 | ~26% |
| P2WPKH (bc1q...) | 141 | 561 | ~38% |
| P2TR key-path (bc1p...) | 154 | 612 | ~32% |
An important nuance: P2WPKH produces smaller outputs (31 bytes) than P2TR (43 bytes), so P2WPKH is more compact for output-heavy transactions. However, P2TR inputs are smaller (57.5 vB vs 68 vB), so P2TR becomes cheaper for input-heavy operations like UTXO consolidation. A 10-input consolidation saves roughly 110 vbytes using P2TR over P2WPKH.
For complex scripts, the savings are even more dramatic. A MuSig2-based P2TR key-path spend is identical in size to a single-sig spend (57.5 vB per input), compared to about 104 vB per input for a 2-of-3 P2WSH multisig: a 45% reduction.
Privacy Properties
Each address type has distinct on-chain fingerprints that affect chain analysis resistance:
- P2PKH and P2SH transactions are visually distinct from SegWit and Taproot, shrinking the anonymity set when mixed with newer types in a single transaction.
- P2WPKH has the largest anonymity set due to its dominant adoption (90%+ of transactions), which provides strong privacy through sheer volume.
- P2WSH reveals the full witness script upon spending, exposing the multisig structure (for example, that a 2-of-3 scheme was used). Its 62-character addresses also distinguish it from 42-character P2WPKH, making multisig setups identifiable.
- P2TR offers the strongest theoretical privacy. All P2TR outputs look identical on-chain regardless of the underlying script complexity. A key-path spend from a MuSig2 3-of-5 multisig is indistinguishable from a simple single-sig payment. Script-path spends reveal only the executed branch, keeping unused conditions hidden via MAST.
For best privacy, avoid mixing address types within a single transaction. Sending from P2WPKH inputs to a P2TR change output creates heuristics that chain analysis tools can exploit. Using a consistent address type across inputs and outputs strengthens the anonymity set. For more on Bitcoin privacy techniques, see the Bitcoin privacy landscape research article.
Taproot: Key-Path vs Script-Path
Taproot uniquely supports two distinct spending modes within a single output, selected at spend time:
Key-Path Spending
The default and most efficient path. The spender provides a single 64-byte Schnorr signature for the tweaked public key. The tweaked key is computed as Q = P + H("TapTweak", P || merkle_root) * G, where P is the internal public key. On-chain, this is indistinguishable from any other P2TR key-path spend, whether the internal key represents a single signer or a MuSig2 aggregate of multiple parties.
Script-Path Spending
Used when key-path spending is unavailable (for example, if one party in a multisig is uncooperative). The spender reveals the executed leaf script, the inputs satisfying that script, the internal public key, and a Merkle proof connecting the leaf to the committed root. Unused script branches remain completely hidden.
The MAST structure can be up to 128 levels deep, theoretically supporting 2128 leaf scripts. Frequently used scripts should be placed closer to the root for shorter proofs and lower fees. BIP 342 (Tapscript) removes the legacy 10,000-byte script size limit and the 201-opcode limit, enabling more complex spending conditions.
Wallet Compatibility
Most modern wallets and exchanges support all address types, but Taproot adoption is still catching up:
| Wallet / Exchange | P2PKH | P2WPKH | P2TR |
|---|---|---|---|
| Ledger | Yes | Yes | Yes |
| Trezor | Yes | Yes | Yes |
| Coldcard | Yes | Yes | Yes |
| Sparrow Wallet | Yes | Yes | Yes |
| Electrum | Yes | Yes | Yes |
| Bitcoin Core | Yes | Yes (default) | Yes |
| Coinbase | Yes | Yes | Send only |
| Kraken | Yes | Yes | Yes |
When choosing a wallet, verify that it supports sending to all address types. Most HD wallets default to P2WPKH or P2TR for new addresses. If you use a hardware wallet, ensure its firmware and companion software support Bech32m (P2TR) if you plan to use Taproot.
Which Address Type Should You Use?
For most users in 2026, P2TR (Taproot) is the recommended default. It provides the best privacy properties, the smallest input sizes for coin control and consolidation, Schnorr signature benefits, and future-facing features like silent payments (BIP 352) which produce outputs indistinguishable from regular Taproot transactions.
P2WPKH remains an excellent choice if you prioritize the largest anonymity set (90%+ adoption) or need maximum compatibility with older wallets and exchanges. For multisig setups, P2TR with MuSig2 is ideal for cooperative spending, while P2WSH provides broader tooling support for traditional multisig configurations.
Layer 2 protocols like the Lightning Network and Spark build on top of these address types. Lightning channels commonly use P2WSH for funding transactions and are transitioning to P2TR for improved privacy and efficiency. Spark leverages FROST threshold signatures with Taproot, combining the privacy benefits of key-path spending with distributed key management.
Risks and Considerations
Address Reuse
Reusing addresses weakens privacy for all types but is especially concerning with P2PKH, where spending reveals the full public key. With P2TR, address reuse still links transactions, but the public key exposure is limited to the tweaked key. Regardless of type, generate a fresh address for every transaction.
Quantum Computing Concerns
All current Bitcoin address types rely on elliptic curve cryptography (specifically secp256k1), which is theoretically vulnerable to quantum computers running Shor's algorithm. P2TR's use of 32-byte x-only public keys in the output makes the key directly visible, whereas hash-based types (P2PKH, P2WPKH) hide the key behind a hash until spending. BIP 360, published in early 2026, proposes quantum-resistant addresses (bc1r...) as a future SegWit version 3 upgrade.
Compatibility Gaps
While most modern wallets support all types, some older software and a few exchanges still cannot send to Bech32m (P2TR) addresses. Before switching entirely to Taproot, verify that your frequently used services support bc1p addresses. Using P2SH-wrapped SegWit (3...) provides a fallback for interacting with legacy-only systems.
This glossary entry is for informational purposes only and does not constitute financial or investment advice. Always do your own research before using any protocol or technology.