If you’ve created a Bitcoin wallet before, you should be pretty familiar with the public address or public key. This key is represented by a long string of text with letters and numbers generated by your wallet, which you can use to receive funds.
When you generate a public address, your wallet uses your private key to generate a corresponding public key, and you would use these addresses to manage your funds as well as track them using your node or a block explorer.
While most of us might not give this long text string much thought and simply accept whatever the wallet generates for us, there is more to it than simply copying these randomly generated keys.
In Bitcoin, there are several types of public keys; each address type has unique features and benefits. Using a Bitcoin wallet, you may encounter one of the four main types of Bitcoin public keys, including SegWit, Legacy, Compatibility, and Taproot.
1. Legacy or P2PKH Address
Legacy addresses, also known as Pay-to-Pubkey Hash (P2PKH) addresses, are the original Bitcoin address format. These addresses begin with the number “1” and are followed by a combination of uppercase and lowercase letters and numbers.
Legacy addresses are compatible with all Bitcoin wallets and services.
However, they have higher transaction fees compared to SegWit addresses, as they do not benefit from the protocol’s efficiency improvements.
To generate a Legacy address, you can use any Bitcoin wallet, such as Bitcoin Core, Electrum, or a hardware wallet like Trezor or Ledger.
When creating a new wallet, select the option for Legacy (P2PKH) addresses.
2. Compatibility or P2SH Address
Compatibility addresses, also known as Pay-to-Script Hash (P2SH) addresses, were introduced in 2012 to enable more complex transactions, such as multi-signature transactions. These addresses start with the number “3” and are followed by a combination of uppercase and lowercase letters and numbers.
P2SH addresses provide backward compatibility with older wallets and services while still benefiting from some of the SegWit protocol’s improvements. They have lower transaction fees than Legacy addresses but are still higher than Bech32 addresses.
To generate a Compatibility address, you can use a wallet that supports both Legacy and SegWit protocols, such as Electrum, Trezor, or Ledger. When creating a new wallet, select the option for SegWit (P2SH) addresses.
3. SegWit or Bech32 Address
Segregated Witness (SegWit) is an upgrade to the Bitcoin protocol that increases block capacity and improves transaction efficiency. Bech32 addresses, also known as native SegWit addresses, are the most recent type of Bitcoin address format.
They start with “bc1” and are followed by a combination of lowercase letters and numbers.
Advantages of Bech32 addresses include improved error detection, reduced transaction fees, and increased block capacity. Bech32 addresses are case-insensitive and can only be used with SegWit transactions.
To generate a Bech32 address, you can use a wallet that supports the SegWit protocol, such as Electrum, Trezor, or Ledger. When creating a new wallet, select the option for native SegWit (bech32) addresses.
4. Taproot or BC1P Address
Taproot is a recent upgrade to the Bitcoin protocol that enhances privacy, scalability, and smart contract capabilities. BC1P addresses, also known as Taproot addresses, are the latest type of Bitcoin address format. They start with “bc1p” and are followed by a combination of lowercase letters and numbers.
Taproot addresses offer various benefits, including improved privacy by making all transactions look the same, increased efficiency for more complex transactions, and support for advanced scripting capabilities. However, since Taproot is still relatively new, only some wallets and services support these addresses.
To generate a Taproot address, you can use a wallet that supports the Taproot protocol, such as Bitcoin Core (version 0.21.1 or higher), Electrum (version 4.1.0 or higher), or hardware wallets with the latest firmware updates. When creating a new wallet, select the option for Taproot (BC1P) addresses.
Managing Multiple Address Types with a Single Seed Phrase
When you generate a Bitcoin wallet, you’re using a Hierarchical Deterministic (HD) wallet, which can manage multiple address types using a single seed phrase or private key. The seed phrase generates your wallet, typically a series of 12 or 24 words. This is the anchor of your wallet, and from that anchor, you can derive all your public keys for various address types.
With the HD wallet, you can easily switch between address formats and even generate multiple addresses for each format without the need to manage separate seed phrases or private keys. By having backward compatibility with all address types, it makes it easier for users to interact with everyone on the Bitcoin network and maintain a streamlined wallet management experience.
Depending on your wallet software, you could see a combined balance with all your addresses regardless of format, or your wallet might have an “account” setup where it displays address-type balances separate from one another.
Regardless of how the wallet’s UI showcases your funds, they all remain in your wallet and fully under your control, so you need not worry about this separation of funds.
You are free to generate any address type you like and supply it to those you wish to receive funds from, be that other peers or exchanges.
Do you take self-custody of your stack?
If you’re new to Bitcoin and have not ventured down the self-custody rabbit hole, what is stopping you? If you’re already self-sovereign, how has the experience been since you took hold of your funds? Let us know in the comments down below. We’re always keen to hear from bitcoiners from around the world.