Posted on — Leave a comment

Advanced Trezor Script Types: P2SH, P2WPKH, and P2WSH—Which Should Your Bitcoin Address Use?

A Bitcoin user holding a hardware wallet faces a practical but often overlooked choice at the point of receiving funds. The address format they choose—whether Pay-to-Script-Hash (P2SH), Pay-to-Witness-Pubkey-Hash (P2WPKH), or Pay-to-Witness-Script-Hash (P2WSH)—affects transaction fees, privacy characteristics, compatibility with exchanges and services, and the technical behavior of the wallet itself. Most users accept the default address type their wallet generates without understanding what distinguishes these formats or whether that default remains appropriate for their specific use case.

Trezor, as a hardware wallet solution, supports all three address types across its device ecosystem and Trezor Suite management application. The choice is not merely aesthetic. Each format encodes different cryptographic commitments, applies different fee structures due to Bitcoin’s witness data handling, and creates different privacy properties when transactions are broadcast to the network. A user sending Bitcoin to a P2WPKH address will pay lower fees than one sending to P2SH, yet P2SH may offer better compatibility with legacy services. Understanding these trade-offs requires examining how Bitcoin’s script system works, how fees are calculated under SegWit, and what real-world advantages or liabilities each address type carries.

Diagram showing the relationship between P2SH, P2WPKH, and P2WSH address formats, with examples of script structure, byte counts, and fee implications for Bitcoin transactions.

How Bitcoin address formats encode spending rules

A Bitcoin address is not simply an identifier. It is an encoded instruction that tells the network what cryptographic conditions must be satisfied before funds can be spent. The address itself is human-readable shorthand; the blockchain contains the actual script that defines those conditions. When you send Bitcoin to an address, you are locking funds according to the rules embedded in that script. Only a transaction that satisfies those rules can unlock and spend the funds.

The oldest Bitcoin addresses, called Pay-to-Public-Key-Hash (P2PKH), require the spender to provide a signature and the public key associated with the receiving address. The network verifies that the signature is valid and that the public key hashes to the address shown on the blockchain. This format is simple and has been supported by every Bitcoin wallet and service since the network’s beginning, but it requires relatively more data in the spending transaction because the signature and public key must both be included in the input.

SegWit, the 2017 protocol upgrade, introduced the concept of witness data—signature and public key information that is stored separately from the main transaction body. This separation has two effects. First, it creates new address formats that can be used to spend funds more efficiently because witness data counts toward the transaction byte limit at a lower weight. Second, it fixes a cryptographic vulnerability called transaction malleability, in which certain signatures could be altered without invalidating the spending logic. From a user’s perspective, the practical benefit is lower fees when spending from or to SegWit addresses, because the same amount of cryptographic information occupies less block space.

P2SH: The bridge format for compatibility

Pay-to-Script-Hash (P2SH) was introduced in 2012, years before SegWit, as a way to simplify addresses when more complex spending rules were needed. Instead of encoding the full script in the address, a P2SH address contains the hash of the script. The actual script is provided later when funds are spent. This has the practical advantage that addresses are shorter and the sender does not need to understand or validate the underlying script; they simply send to the hashed version.

In the context of modern Trezor wallets, P2SH is often used as a wrapper for SegWit scripts. An address starting with “3” (on mainnet) may actually enforce a P2WPKH or P2WSH rule within it, meaning the spender must provide witness data to unlock the funds. This nested SegWit approach, sometimes called P2SH-wrapped SegWit, provides backward compatibility. Older wallets and services that do not yet recognize native SegWit addresses (those starting with “bc1”) can still send funds to a P2SH address, and the funds will be secured using SegWit rules when spent.

The compatibility benefit comes with a cost. Because the script information must be provided during spending, a transaction that spends from P2SH requires more bytes than a transaction spending from native SegWit. This makes P2SH less fee-efficient than P2WPKH or P2WSH for the person spending the funds, not the person receiving them. From a privacy perspective, P2SH addresses are often used for multisig arrangements, so the address format itself does not strongly indicate single-signature control. This ambiguity can be an advantage if you want to avoid revealing that a particular address belongs to a single-key wallet rather than a multisig setup.

P2WPKH: The practical standard for individual users

Pay-to-Witness-Pubkey-Hash (P2WPKH) is the native SegWit address format for single-key control. An address of this type starts with “bc1q” (on mainnet) and directly encodes the witness commitment. When you spend from a P2WPKH address, the signature and public key are included as witness data, which means they count toward the block size limit at a reduced weight. A transaction spending from P2WPKH typically saves approximately 30-40% in byte size compared to the equivalent P2PKH transaction, or roughly 15-25% compared to P2SH-wrapped SegWit.

Trezor Suite defaults to generating P2WPKH addresses for new Bitcoin wallets, and this choice reflects years of ecosystem maturation. Major exchanges, payment processors, and wallet services now universally support receiving to bc1q addresses. The fee savings are substantial and reliable: if you are spending Bitcoin frequently, the cumulative cost difference between P2WPKH and legacy address types can be significant over time. A user managing a hardware wallet with regular transaction activity will see measurable savings by using native SegWit receiving addresses.

The privacy implications of P2WPKH are worth noting. The address format itself immediately reveals to observers that you are using SegWit, which narrows the set of possible wallet software and practices. On the transaction chain, a P2WPKH address is more visibly “modern” than P2PKH or P2SH addresses, which can create a mild statistical fingerprint. However, this is a negligible concern compared to the address reuse, timing patterns, and counterparty behavior that dominate Bitcoin transaction linkability. If privacy is a concern, your choice of address format matters far less than your habits of address reuse, consolidation of coins, and exposure to services that know your identity.

P2WSH: Native SegWit for multisignature and complex scripts

Pay-to-Witness-Script-Hash (P2WSH) extends the witness system to more complex spending rules, such as multisignature arrangements, timelocks, or conditions that require multiple signatures to authorize a spend. An address of this type starts with “bc1q” (on mainnet) and contains a commitment to the full script, which is revealed when funds are spent. Like P2WPKH, P2WSH benefit from witness data treatment, achieving similar or better fee efficiency compared to legacy approaches.

The technical distinction is important: P2WPKH encodes a hash of a single public key, while P2WSH encodes a hash of the entire script. This matters when you are setting up multisig wallets or any arrangement that requires more than one key or condition. In a Trezor context, P2WSH is relevant when you are using the device as one component of a multisignature setup, for example in a 2-of-3 or 3-of-5 configuration where multiple hardware wallets or key sources must approve transactions.

The fee characteristics of P2WSH are identical to P2WPKH: witness data counts at reduced weight, making P2WSH transactions substantially cheaper than legacy multisig formats (called P2SH-wrapped multisig). For users managing significant balances across multiple signing devices, the long-term fee savings can justify the additional complexity. A user setting up cold storage with multiple Trezor devices or a combination of Trezor and other hardware wallets should strongly consider P2WSH over legacy P2SH multisig.

Transaction fees and block space economics

Bitcoin transaction fees are determined by supply and demand for block space. The network can include a limited amount of data in each block, and miners choose which transactions to include based on the fee rate offered relative to other pending transactions. Before SegWit, all transaction data was weighted equally: a byte was a byte. SegWit separated witness data and applied a lower weight multiplier to it, so 1 byte of witness data counts as 0.25 bytes toward the block limit.

In practical terms, a transaction spending from P2WPKH uses approximately 68% of the weight that a P2PKH transaction would use for the same operation. If the network fee rate is 50 satoshis per vbyte (a virtual byte, which accounts for the weight adjustment), a P2PKH transaction might cost 10,000 satoshis, while a P2WPKH transaction for the same logical operation costs roughly 6,800 satoshis. This difference compounds: a user making 100 transactions per year using P2WPKH could save thousands of satoshis annually compared to P2PKH.

The fee advantage is not just about the receiving address; it is equally important for the spending address. When you spend Bitcoin using Trezor Suite, the transaction you create depends on which address types hold the funds you are spending from. If you have been receiving to P2WPKH addresses for a year, all the unspent transaction outputs (UTXOs) backing your wallet are P2WPKH, and your spending transactions will benefit from the weight reduction. If you receive to P2PKH or P2SH addresses, your future spending transactions will pay the higher byte costs. The decision about which address type to use is therefore not merely about the current transaction; it affects all future spending from those funds.

Compatibility across wallets and services

The practical question for many users is whether the address type they use will be accepted by the services and wallets they interact with. Trezor, as a hardware wallet, is only half of the equation; the other half is the ecosystem of exchanges, merchants, and other wallets that may send funds to you.

P2PKH addresses (those starting with “1”) have been supported everywhere since Bitcoin’s beginning. Any service that has ever accepted Bitcoin can send to a P2PKH address. P2SH addresses (those starting with “3”) have been supported almost universally since 2012, with only very rare legacy services lacking support. Native SegWit addresses (those starting with “bc1”) have achieved nearly complete support as of 2024, but a few older or poorly maintained services may not yet recognize them. Before configuring your Trezor wallet to use exclusively P2WPKH addresses, verify that all the services you send funds to have adopted it. Most major exchanges do; some regional or specialized platforms may lag.

The safest approach for users who interact with many different services is to generate addresses of multiple types within the same Trezor wallet. Trezor Suite allows you to choose the address derivation path and script type when creating a receive address. You can configure the wallet to default to P2WPKH for most operations while maintaining the ability to generate P2SH or P2PKH addresses on demand if a particular service requires it. This flexibility, combined with the security of offline key storage in the hardware wallet, ensures that compatibility limitations do not force you into using suboptimal address types.

Setting address type defaults and managing multiple wallets

When you connect a Trezor device to Trezor Suite or access it through the web interface available at sites.google.com/trezorsuite.cfd/trezor-official/, the application manages which address format is used for new receive addresses. The default for modern devices is P2WPKH, but you can adjust this setting if you have specific compatibility or privacy requirements.

Some users maintain multiple receive addresses of different types simultaneously: a primary P2WPKH address for most transactions, a P2SH address for compatibility with certain services, and potentially a P2WSH address if multisignature control is involved. This approach requires discipline in record-keeping and verification, but it allows you to optimize for your actual use case rather than accepting a one-size-fits-all default. When viewing your portfolio and balance in Trezor Suite, all addresses under the same seed phrase and device are consolidated into the account view, so tracking across multiple address types is manageable.

The relationship between address type and device firmware is also worth noting. Trezor regularly updates device firmware, and these updates can add support for new address types or improve the handling of existing ones. A Trezor Model T or One from an earlier firmware version may not support all address types; updating to the latest firmware is recommended before committing to a specific address format. The hardware wallet’s offline security model protects your private keys during this process, so firmware updates carry no risk of key exposure as long as you update from a trusted source and verify the update through the device screen.

Privacy considerations and address clustering

From a transaction privacy perspective, the address format you use creates a mild fingerprint but is far less important than your behavior. A P2WPKH address immediately identifies to the network that you are using modern wallet software, while P2PKH may suggest older software. An observer analyzing the blockchain can use address type to statistically cluster wallets by generation and probable software. However, this clustering is weak compared to the linkability created by address reuse, round-number amounts, or consolidation of separate coins.

The choice between P2SH-wrapped SegWit and native SegWit has more subtle privacy implications. P2SH addresses are ambiguous: they can represent multisig, P2WSH, P2WPKH, or other scripts. When you spend from a P2SH address, the script details are revealed on-chain for the first time. An observer watching the blockchain cannot know from the address alone whether you control a single key or manage a multisig arrangement. Native SegWit addresses are clearer: a bc1q address is visibly single-signature, while a bc1p address suggests a different script type. This transparency can be an advantage if you want the world to know your funds are under your sole control, or it can be a disadvantage if you prefer ambiguity.

In practice, the privacy difference is minimal unless you are dealing with large amounts and sophisticated adversaries. Your choice of address format should be driven primarily by fee efficiency, compatibility, and whether you are setting up single-signature or multisignature control. Privacy in Bitcoin depends far more on transaction behavior, address reuse patterns, and interaction with services that know your identity than on the script type encoding your keys.

Frequently asked questions

What address format should I use if I do not care about fees?

If fees are not a concern, P2WPKH (native SegWit, addresses starting with bc1q) remains the best choice because it is widely supported, benefits from lower fees when you spend, and is the direction Bitcoin has moved. P2PKH addresses are equally secure but will cost more to spend from in the future. P2SH is useful only if you need compatibility with old services or are setting up multisig. For most individual users with a hardware wallet, P2WPKH is the practical default.

Can I receive Bitcoin on both P2WPKH and P2SH addresses from the same Trezor device?

Yes. Trezor Suite allows you to generate receive addresses of different types from the same seed phrase and device. You can create multiple addresses for different purposes: primary P2WPKH addresses for most use, P2SH for compatibility with certain services, and P2WSH if you are setting up multisignature. All balances are consolidated in the account overview, though you must manually track which address type corresponds to which purpose.

Does switching from P2SH to P2WPKH affect my existing funds or private keys?

No. Changing the address type for new receives does not affect funds already sent to older addresses. Both P2SH and P2WPKH addresses derived from the same Trezor device and seed phrase use the same underlying private key material, just encoded differently. Your existing balance remains accessible, and you can spend from both address types simultaneously. The change only affects the format of new addresses you generate going forward.

Leave a Reply

Your email address will not be published. Required fields are marked *