Overview

Bitcoin has evolved through several address types since 2009, each introducing improvements in privacy, fee efficiency, and functionality. The type of address determines how funds are locked and how they can be spent.

Source: Bitcoin address types (21ideas)

Address Types at a Glance

TypePrefixEncodingEraBTC Held (approx.)Status
P2PKRaw pubkey2009~1.7M BTC (9%)Obsolete
P2PKH1Base582009~8.3M BTC (43%)Declining
P2MSRaw multisig2012~43 BTC (0.0002%)Obsolete
P2SH3Base582012~4.6M BTC (24%)Declining
P2WPKHbc1q (42)Bech322017~3.8M BTC (20%)Growing
P2WSHbc1q (62)Bech322017~0.8M BTC (4%)Growing
Nested SegWit3Base582017(within P2SH)Transitional
P2TRbc1pBech32m2021GrowingGrowing

P2PK (Pay-to-Public-Key)

The original method Satoshi used. Bitcoin is sent directly to a public key (not an address). The first Bitcoin transaction ever (Satoshi → Hal Finney, block 170) used P2PK.

Problems: Exposes the full public key; more expensive; less private. No checksum. Now obsolete.

Interesting: ~1.7M BTC (~9% of supply) still held in P2PK outputs — mostly Satoshi-era coins.

P2PKH (Pay-to-Public-Key-Hash) — Legacy

The standard since week 2 of Bitcoin’s existence. Instead of paying to a public key, you pay to the hash of a public key (the “address”). Addresses start with 1.

Improvements over P2PK: Hashing the key (SHA-256 then RIPEMD-160) adds privacy (key not revealed until spending), reduces data size, adds checksum.

Status: Still holds 43% of all mined bitcoin — the most of any type. Declining as users move to SegWit.

P2MS (Pay-to-Multisig)

An early raw multisig type (BIP11, 2012). Like P2PK, it exposed public keys and was limited to 3-key maximum. Quickly replaced by P2SH for multisig. Essentially obsolete.

P2SH (Pay-to-Script-Hash) — 3 addresses

Introduced April 2012 (BIP16). Instead of paying to a key or raw script, you pay to the hash of a redeem script. The script’s details are revealed only when spending.

Why important: Enabled arbitrary spending conditions (multisig, timelocks, etc.) while keeping the script hidden until spend time. Became the standard for multisig wallets.

Addresses start with 3 (BIP13 encoding). Exactly 34 characters. Base58 encoded.

Also used for Nested SegWit: When SegWit launched in 2017, many wallets wrapped SegWit outputs inside P2SH for backward compatibility with software that didn’t yet recognize bc1q addresses.

P2WPKH (Pay-to-Witness-Public-Key-Hash) — Native SegWit

First native SegWit address type, introduced with the SegWit soft fork (August 2017). The SegWit equivalent of P2PKH.

Advantages over P2PKH:

  • Witness data (signatures) gets a 75% discount in block weight → lower fees
  • Fixes transaction malleability
  • Better for Lightning Network

Addresses start with bc1q, 42 characters, Bech32 encoded (no uppercase letters, better error detection).

P2WSH (Pay-to-Witness-Script-Hash) — Native SegWit Multisig

The SegWit equivalent of P2SH. Used for multisig and complex scripts in native SegWit.

Differences from P2WPKH: Uses SHA-256 only (not RIPEMD-160) → longer address (62 chars). Provides additional protection against theoretical birthday attacks on multisig schemes.

Also starts with bc1q but is 62 characters long.

Nested SegWit (P2SH-P2WPKH, P2SH-P2WSH)

Not a separate address type — SegWit outputs wrapped inside P2SH for backward compatibility. Uses the 3 prefix. Technically P2SH, but the redeem script contains a SegWit commitment.

Purpose: Allowed SegWit fee savings for users whose counterparties didn’t yet support native bc1q addresses. Now largely superseded by native SegWit and Taproot.

P2TR (Pay-to-Taproot) — bc1p addresses

Introduced with Taproot (November 2021, BIP341). The most advanced address type.

Key features:

  • Schnorr signatures instead of ECDSA
  • Key path spending: simple single-signature spend, cheapest and most private
  • Script path spending: can satisfy any condition in a MAST (Merkle tree of scripts)
  • All P2TR outputs look identical on-chain — whether a single-sig, a 5-of-7 multisig, a Lightning channel, or a complex contract; this dramatically improves privacy

Addresses start with bc1p, 62 characters, Bech32m encoded.

Which Address Type to Use?

For most users today:

  • Receiving → P2TR (bc1p) if your wallet supports it; otherwise P2WPKH (bc1q)
  • Multisig → P2WSH (bc1q...) or P2TR with MuSig2
  • Avoid → P2PKH (1) and P2SH (3) for new wallets (higher fees, less private)

Hardware wallets: Coldcard, SeedSigner, Foundation Passport all support P2TR as of 2023+.

Sources