A Bitcoin address is an 26-35 alphanumeric character identifier that is used to receive bitcoin. There are several address formats based on different specifications.
When users enter an address, these formats have specific prefixes so it is possible to determine which format is being used.
Below are common address formats used today:
A pay-to-pubkey-hash (P2PKH), or legacy address, is the oldest and original Bitcoin address format. This address format is not widely used today as transaction costs are higher using this format. However, support for this in applications is still encouraged as to be compatible with older legacy wallets that have not upgraded to new address formats.
Legacy addresses begin with the number 1, can contain upper and lowercase characters, and are case sensitive.
A pay-to-script-hash (P2SH), or script address, can have additional rules and functionality attached to the address. Script addresses are commonly used for multi-sig addresses which can specify that signatures from several keys are required to authorize the transaction.
Script addresses start with the number 3, can contain upper and lowercase characters, and are case sensitive.
A pay-to-witness-public-key-hash (P2WPKH), also known as native SegWit or Bech32 address, is a modern more efficient address format. SegWit addresses are opt-in so not every application supports them but the majority do, and should, today. SegWit adoption can be tracked on here.
Benefits of SegWit addresses include more resistance to input errors (as they are case insensitive and use error-correcting codes), and lower transaction fees. The fee saving will depend on the type of transaction but for a common transfer of funds it can be 30-40%.
SegWit addresses start with
bc1q and are case insensitive.
A pay-to-taproot (P2TR), also known as a Taproot or Bech32m address, is the most recent and advanced Bitcoin address format. Taproot introduces more advanced security, privacy, flexibility and scaling to Bitcoin. Like SegWit, Taproot addresses are opt-in and they are not currently widely supported. Taproot adoption can be tracked here.
Benefits of Taproot include the ability to use Schnorr Signatures offering better security, lower fees, and more flexible multi-key transactions. Multi-key addresses using P2TR look the same as single-key addresses giving users of multi-key increased privacy. Taproot also enables more advanced scripting which enables more complex smart contracts to be built on Bitcoin.
Taproot addresses start with
bc1p and are case insensitive.
Change address #
When the output of a transaction is used as the input of another transaction, it must be spent entirely. Sometimes the value of the output is higher than what the user wishes to pay. In this case, the bitcoin client generates a new Bitcoin address, and sends the difference back to this address. This is known as change address. The change address format used will usually be the default format used by the wallet application.
Address compatibility #
Since “legacy” addresses are still in use, some older applications have yet to upgrade. Script addresses can be used to resolve incompatibility issues that can arise when the sender’s application does not recognize the SegWit address provided by the receiver.
To illustrate the problem, suppose the sender is using a legacy wallet and paying to the receiver’s SegWit address. In this case, the sender’s wallet may incorrectly warn them that the address is invalid or not supported. This can confuse the sender’s end, leading them to think that the receiver provided an incorrect address.
The receiver should then have the ability to switch to a Script or Taproot address that does not have all the benefits of SegWit, like cheaper transactions and more advanced features, but will be compatible with the sender’s wallet.
Next, learn about the different kinds of wallets that exist with Bitcoin.