Overview
A Bitcoin address is the identifier you share with others to receive payments. It is derived from a public key through a series of hashing and encoding steps, providing a shorter, more user-friendly representation. Different address formats have evolved over time, each offering improvements in efficiency, error detection, or functionality.
Address Formats
Format Prefix Example Start Introduced
─────────────────────────────────────────────────────────
P2PKH 1 1A1zP1eP5QGe... 2009 (original)
P2SH 3 3J98t1WpEZ73... 2012 (BIP16)
Bech32 bc1q bc1qw508d6q... 2017 (BIP173/SegWit)
Bech32m bc1p bc1pxyz... 2021 (BIP350/Taproot)
How Addresses Are Generated
- Generate a private key (random 256-bit number)
- Derive the public key using elliptic curve multiplication
- Hash the public key with SHA-256 followed by RIPEMD-160
- Encode the result using Base58 (legacy) or Bech32 (SegWit)
Common Misconceptions
- Addresses are not accounts: Unlike bank accounts, Bitcoin addresses are designed to be single-use. Reusing addresses degrades privacy by linking transactions together.
- Addresses do not "hold" bitcoin: The blockchain records outputs locked to specific scripts. An address is simply a human-readable encoding of that script.
- Sending to the wrong format still works: Modern wallets support all address formats. However, some older services may not support Bech32 addresses.
Best Practices
Always use the most modern address format your wallet supports (currently Bech32/Bech32m) for lower fees and better error detection. Generate a fresh address for each transaction to maximize privacy.