Someone setting up a hardware wallet for the first time, packaging on desk, laptop with wallet interface, afternoon home office light, casual unboxing moment.
Protocols

Address Type Selection and Compatibility

An operational guide for choosing and supporting Legacy, Nested SegWit, Native SegWit, and Taproot address types. Covers compatibility matrices, cost and privacy trade-offs, and a migration readiness review for teams still relying on deprecated formats.
introduction
BEYOND SPEC COMPLIANCE

Why Address Type Selection Is an Operational Decision

Address type selection is not a one-time wallet feature flag but an ongoing operational commitment that shapes cost, privacy, and compatibility across the entire transaction lifecycle.

In Bitcoin, the choice between Legacy (P2PKH), Nested SegWit (P2SH-P2WPKH), Native SegWit (P2WPKH), and Taproot (P2TR) address types is a foundational operational decision for exchanges, custodians, and wallet providers. This choice directly dictates the structure of every withdrawal, deposit, and change output, creating a permanent on-chain footprint that affects fee efficiency, privacy set, and long-term UTXO management costs. Unlike a simple UI toggle, the selected address type becomes embedded in cold storage generation logic, PSBT signing workflows, and customer-facing deposit address derivation, making later migration a complex, multi-phase project rather than a configuration change.

Operators must weigh a matrix of trade-offs that extend far beyond the base transaction size savings of SegWit. Native SegWit (BIP84) outputs reduce weight units and therefore miner fees, but they remain visible as a distinct script pattern, limiting privacy when mixed with legacy outputs. Taproot (BIP86) offers further efficiency gains for key-path spends and introduces indistinguishable multisig and script-path spending, but it requires full ecosystem support from block explorers, compliance tools, and counterparty wallets. The operational risk lies in the gap between internal readiness and external compatibility: a platform that generates P2TR deposit addresses before its automated reconciliation tools can parse Taproot scripts creates a critical monitoring blind spot.

The cost of delayed migration is compounding. Teams still generating P2SH-P2WPKH (Nested SegWit) addresses are paying a 40% fee premium over Native SegWit for equivalent security, while also creating outputs that will eventually require an additional spend to consolidate into more efficient types. Chainscore Labs provides a structured migration readiness review that maps your current UTXO set, identifies compatibility gaps in your signing infrastructure and compliance tooling, and delivers a phased rollout plan that minimizes customer disruption while systematically reducing long-term fee exposure.

COMPATIBILITY AND RISK ASSESSMENT

Address Type Quick Reference

Operational comparison of Bitcoin address types for integration planning, covering compatibility, cost, privacy, and migration urgency.

Address TypeKey Compatibility ConcernWho is AffectedAction

Legacy (P2PKH)

Highest fee cost; deprecated by many modern wallets and services.

Exchanges, custodians, and payment processors still generating or receiving to 1... addresses.

Prioritize deprecation. Migrate sending logic to Native SegWit or Taproot.

Nested SegWit (P2SH-P2WPKH)

Compatibility bridge with higher fee weight than Native SegWit.

Services supporting older wallets that cannot send to bc1 addresses.

Plan migration to Native SegWit. Use only as a temporary receiving address for backward compatibility.

Native SegWit (P2WPKH)

Not supported by legacy withdrawal systems.

Exchanges sending to user wallets that have not upgraded from legacy software.

Default receiving address. Verify all withdrawal systems can send to bc1q addresses.

Taproot (P2TR)

Limited support in older signing infrastructure and HSMs.

Custodians, multisig orchestrations, and complex PSBT workflows.

Audit signing pipeline for BIP340 (Schnorr) and BIP341 (Taproot) support. Do not deploy without full key-path and script-path testing.

Cross-type Sending

Sending from a Taproot output to a Legacy address reveals Taproot usage.

Privacy-conscious users and services managing multiple address types.

Implement output segregation. Avoid mixing address types in a single transaction to preserve privacy.

Watch-only Wallets

Incorrect descriptor import leads to missed transactions.

Accounting and audit teams tracking balances across multiple address formats.

Verify descriptor checksums. Use importmulti with explicit desc fields for each address type.

Fee Estimation

SegWit and Taproot transactions are cheaper, skewing fee estimates if Legacy is used.

Automated fee-bumping and coin-selection systems.

Calibrate fee estimators per input type. Do not use a single fee rate for mixed-input transactions.

technical-context
ADDRESS FORMAT SELECTION

Technical Mechanism and Trade-offs

The operational and security trade-offs between Legacy, Nested SegWit, Native SegWit, and Taproot address types for Bitcoin services.

Bitcoin address type selection is a critical architectural decision for any exchange, wallet, or custodian, directly impacting transaction cost, privacy, and compatibility with the broader network. The four primary output types—Legacy (P2PKH), Nested SegWit (P2SH-P2WPKH), Native SegWit (P2WPKH), and Taproot (P2TR)—represent a progression in Bitcoin's scripting capabilities. Each format encodes a different set of consensus rules and witness structures, which dictate the size of the transaction data that must be relayed and stored. The core trade-off is between the lower fees and enhanced functionality of modern address types and the universal compatibility of older formats with all wallets and services.

From an operational cost perspective, the choice of address type directly determines the weight units consumed by a transaction. A Legacy input consumes roughly 148 vbytes, while a Native SegWit input consumes only 68 vbytes, and a Taproot key-path spend is even more efficient at 57.5 vbytes. For a high-volume service batching hundreds of withdrawals, this difference translates into a significant reduction in fee expenditure during periods of high mempool congestion. However, the adoption of Native SegWit and Taproot is not universal. A service that exclusively uses bech32m addresses will be unable to receive payments from users on older wallets or exchanges that have not upgraded their address parsers, creating a direct business risk of failed deposits and increased customer support load.

The privacy implications of address selection are equally significant but often overlooked. Using a single address type for all operations creates a homogeneous on-chain fingerprint that simplifies cluster analysis by third-party observers. A more sophisticated approach involves a heterogeneous wallet architecture that uses different address types for different transaction flows—for example, using Taproot for internal consolidation and cold storage refills to leverage key-path spending efficiency, while maintaining a Native SegWit hot wallet for user withdrawals to ensure broad compatibility. This strategy balances cost optimization with interoperability but requires a more complex signing and UTXO management system. Teams must also consider the privacy cost of sweeping funds from a deprecated Legacy address into a modern format, as this consolidation event publicly links the old and new output types.

A migration readiness review for teams still relying on Legacy or Nested SegWit formats should begin with a full audit of all address generation, parsing, and signing code paths. The primary risk is not in the creation of new addresses but in the continued ability to spend from old ones, especially as some hardware security modules and signing libraries have incomplete support for SegWit sighash algorithms. Chainscore Labs can perform a targeted review of a service's address type architecture, assessing compatibility matrices, fee estimation accuracy across output types, and the operational security of a phased migration to modern address formats.

ADDRESS TYPE MIGRATION IMPACT

Affected Systems and Stakeholders

Exchange and Custodian Impact

Exchanges and custodians face the highest operational burden from address type fragmentation. Deposit systems must parse and credit Legacy (P2PKH), Nested SegWit (P2SH-P2WPKH), Native SegWit (P2WPKH), and Taproot (P2TR) outputs correctly. Withdrawal engines need explicit logic for selecting the appropriate address type based on user input or internal policy.

Key risks:

  • Crediting failures when indexers miss non-standard script types.
  • Overpaying fees by consolidating from Legacy UTXOs instead of SegWit.
  • Blocking user withdrawals to Taproot addresses due to unvalidated address parsing.

Action items:

  • Audit the deposit monitor for full script template coverage.
  • Migrate internal hot wallet UTXOs to Native SegWit or Taproot to reduce fee pressure.
  • Update withdrawal allowlists to accept bc1p (Bech32m) addresses.
implementation-impact
ADDRESS TYPE COMPATIBILITY

Integration and Migration Impact

Operational impact analysis for teams integrating or migrating between Bitcoin address types. Covers compatibility risks, cost implications, and readiness checks for exchanges, wallets, and custodians.

01

Deposit Detection Failures

Legacy systems that only monitor P2PKH addresses will miss customer deposits sent to Native SegWit (P2WPKH) or Taproot (P2TR) addresses. This is a common cause of unreconciled balances on exchanges. Every address indexer must be explicitly configured to scan for all supported output types. A Chainscore integration review can audit your block parser and address derivation logic to ensure no deposit type is silently ignored.

02

Withdrawal Compatibility Matrix

Not all wallets and services can send to every address type. A withdrawal system must validate the destination address against a known compatibility matrix before broadcasting. Sending to a P2WSH address from a legacy-only wallet will fail. Teams should maintain an explicit allowlist of supported destination types and reject unsupported formats at the API layer with a clear error message. Chainscore can help design and test this validation logic.

03

Fee Estimation Discrepancies

Legacy (P2PKH) transactions consume significantly more vbytes than Native SegWit or Taproot equivalents for the same payment logic. A fee estimator that assumes a single input type will produce incorrect fee rates for mixed wallets. This leads to overpayment or stuck transactions. Implement per-UTXO fee calculation based on the specific script type being spent. Chainscore can review your coin selection and fee estimation modules for type-aware accuracy.

04

Multisig Script Migration

Migrating from P2SH multisig to P2WSH or P2TR script-path multisig is not a simple address swap. P2TR script-path requires a new key aggregation and tree construction model defined in BIP341/342. Custodians must update their key ceremony, signing orchestration, and PSBT workflows. A phased migration with parallel signing infrastructure is recommended. Chainscore provides security architecture review for complex script-path migration projects.

05

Privacy and UTXO Set Partitioning

Using a mix of address types fragments a wallet's UTXO set and creates distinct on-chain fingerprint clusters. Consolidating coins from a Legacy address into a Taproot address links those histories permanently. Teams should define a consolidation policy that minimizes privacy leakage, potentially using CoinJoin or sweeping to a new wallet. Chainscore can assess your UTXO management strategy for privacy and cost trade-offs.

06

Hardware Wallet and HSM Support

Many HSMs and older hardware wallet firmware versions do not support signing for P2TR key-path or script-path spends. Before rolling out Taproot withdrawal support, verify that every signer in the quorum can produce valid BIP340 Schnorr signatures and handle the new sighash algorithm. A silent failure here can lock funds. Chainscore can perform an HSM integration review to validate end-to-end signing compatibility.

ADDRESS TYPE SELECTION AND COMPATIBILITY

Compatibility and Risk Matrix

Operational risks, compatibility gaps, and required actions for exchanges, wallets, and custodians managing Legacy, Nested SegWit, Native SegWit, and Taproot address types.

AreaWhat changesWho is affectedAction

Legacy (P2PKH) Support

Addresses start with '1'. Higher transaction weight leads to significantly higher fees compared to SegWit outputs.

Exchanges, custodians, and wallets still generating or receiving to '1' addresses.

Deprecate generation. Migrate UTXOs to Native SegWit or Taproot during low-fee periods. Verify sweep logic handles uncompressed public keys.

Nested SegWit (P2SH-P2WPKH) Compatibility

Addresses start with '3'. Wraps a SegWit script in a P2SH redeemScript. Not all services recognize these as SegWit for fee estimation.

Wallets and exchanges sending to '3' addresses; block explorers calculating fee savings.

Verify that sending logic recognizes P2SH-P2WPKH outputs and constructs SegWit-sized witnesses. Audit fee estimation to ensure SegWit discount is applied.

Native SegWit (P2WPKH) Adoption

Addresses start with 'bc1q'. Bech32 encoding. Some older wallets and services cannot send to Bech32 addresses.

Exchanges processing withdrawals to user-provided 'bc1q' addresses; legacy integrators.

Implement Bech32 address validation and sending support. Maintain a compatibility fallback list of partners that reject Bech32. Monitor withdrawal failure rates by address type.

Taproot (P2TR) Readiness

Addresses start with 'bc1p'. Bech32m encoding. Uses Schnorr signatures and enables script-path spending via Merkle trees.

Custodians upgrading signing infrastructure; exchanges receiving deposits to 'bc1p' addresses.

Upgrade HSM and signing library support for BIP340 Schnorr signatures. Validate Bech32m checksum logic. Implement deposit detection for P2TR outputs before enabling withdrawals.

Bech32m vs Bech32 Confusion

Bech32m (for P2TR) changes the checksum constant from 1 to 0x2bc830a3. Sending to a 'bc1p' address using Bech32 logic will create an unspendable output.

Wallet and exchange developers implementing Taproot sending.

Audit address encoding libraries to confirm Bech32m is used for 'bc1p' addresses. Add integration tests with known-answer P2TR test vectors to prevent fund loss.

Script Descriptor Import/Export

Output descriptors (BIP380) are required to express Taproot outputs and complex scripts. Legacy import/export formats cannot represent P2TR.

Custodians using watch-only wallets; teams performing proof-of-reserves with Taproot addresses.

Transition key export and wallet setup procedures to use output descriptors. Verify HSM and signing orchestration layers can parse and use descriptor-based wallet definitions.

Fee Estimation Accuracy

Transaction weight varies significantly by input type. Mixing Legacy inputs with SegWit inputs inflates fees if the estimator uses a flat rate.

Exchanges batching withdrawals; automated payment processors.

Implement input-type-aware fee estimation that calculates virtual size (vbytes) based on each UTXO's script type. Monitor fee overpayment rates by transaction composition.

Privacy and Fingerprinting

Using mixed address types in a single transaction creates a distinct fingerprint that degrades privacy and can link wallet activity.

Wallets and services performing UTXO consolidation; privacy-conscious platforms.

Avoid mixing address types in consolidation transactions. Review coin selection algorithms to prefer single-type input sets. Assess privacy impact of change output address type selection.

ADDRESS TYPE MIGRATION

Migration Readiness and Operational Checklist

A structured checklist for exchanges, wallets, and custodians to assess their readiness for migrating from Legacy and Nested SegWit (P2SH-P2WPKH) address types to Native SegWit (P2WPKH) and Taproot (P2TR). This review ensures full compatibility, optimizes transaction costs, and identifies integration gaps before deprecating older formats.

Verify that every component in the transaction lifecycle correctly parses and generates Bech32 (P2WPKH) and Bech32m (P2TR) addresses.

  • What to check: Internal wallets, withdrawal whitelists, address validation regex patterns, QR code generators, and third-party signing libraries.
  • Why it matters: A single legacy dependency can cause withdrawal failures or fund loss when users supply a Native SegWit or Taproot address.
  • Readiness signal: A successful end-to-end test on mainnet sending to and spending from a Bech32m address using the production signing pipeline.
Chains We Build On

Looking to build on a specific blockchain?

We build smart contracts, DeFi applications, wallets, tokenization platforms, and blockchain infrastructure across the major ecosystems teams choose today. That includes Ethereum, Arbitrum, Optimism, Polygon, Avalanche, Solana, Sui, Aptos, Hedera, Stellar, and NEAR, with support for additional EVM and non-EVM networks based on your product requirements.

EVM ecosystems

  • Ethereum logo
    Ethereum
  • Arbitrum logo
    Arbitrum
  • Optimism logo
    Optimism
  • Polygon logo
    Polygon
  • Avalanche logo
    Avalanche
  • Cronos logo
    Cronos

Non-EVM ecosystems

  • Solana logo
    Solana
  • Sui logo
    Sui
  • Aptos logo
    Aptos
  • Hedera logo
    Hedera
  • Stellar logo
    Stellar
  • NEAR logo
    NEAR

Additional ecosystems

  • Polkadot logo
    Polkadot
  • Cosmos logo
    Cosmos
  • TON logo
    TON
  • Cardano logo
    Cardano
  • Algorand logo
    Algorand
  • Tempo logo
    Tempo

Also available for Base, appchains, custom EVM networks, and cross-chain product architecture.

ADDRESS TYPE COMPATIBILITY

Frequently Asked Questions

Common operational questions from teams managing Bitcoin address type support, migration planning, and compatibility testing.

A new service should support Native SegWit (P2WPKH, bc1q) and Taproot (P2TR, bc1p) as the primary receive and change address types. These formats offer the lowest transaction weight, resulting in lower fees for users and the platform.

Minimum viable support:

  • Receive: Generate P2WPKH and P2TR addresses. P2TR is preferred for future-proofing and multisig efficiency.
  • Send: Recognize and spend to all standard types: P2PKH (1...), P2SH (3...), P2WPKH (bc1q), P2WSH (bc1q), and P2TR (bc1p).
  • Do not launch with Legacy (P2PKH) as the default. It increases UTXO bloat and future consolidation costs.

Why this matters: Launching with only Legacy support creates immediate technical debt. Every UTXO created in a Legacy format will require a more expensive SegWit input to spend later, permanently increasing the platform's cost basis.

Trusted by Industry Leaders

Delivering blockchain solutions for 5+ years.

We have partnered with 50+ leading DeFi protocols, NFT ecosystems, and fintech innovators to build secure, scalable, and capital-efficient blockchain products.

Selected Partners & Clients

ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
I've been working with Chainscore Labs for last 3+ years, they've consistently delivered with strong ownership across multiple projects. The team is reliable and detail-oriented.
L
Lee Erswell
CEO, Telos Foundation
how to get started

How to get started?

If you're looking for blockchain integration, ChainScore Labs has 5+ years of experience helping teams build and integrate exchanges, wallets, smart contracts, tokenization solutions, and protocol-connected products, we can help you choose the right path, integrate securely, and get to production faster. Our team consists of experienced blockchain developers and architects who can help you with your blockchain integration needs.

01

Exploration & Strategy

Define your product goals and choose the right blockchain architecture for your use case.

02

Architecture & Design

Design the smart contracts, tokenomics, and security parameters of your system.

03

Development & Integration

Build and integrate with wallets, oracles, and front-end dApps for a seamless experience.

04

Security & Launch

Comprehensive audits followed by a risk-managed mainnet deployment to protect your users.

Start a build

Need a blockchain engineering team?

Send the project context and we will respond with next steps, scope questions, and a practical path to delivery.