A Bitcoin address is a unique identifier used to send and receive Bitcoin, analogous to a bank account number. Each address consists of 26–35 alphanumeric characters, typically starting with the number 1 or 3. The address is generated by hashing the public key (from the private key) using SHA256 and RIPEMD160, then encoding with Base58Check to avoid ambiguous characters. This article covers the three main address types: Legacy (P2PKH), P2SH, and SegWit (Bech32).
What Is a Legacy Bitcoin Address?
The legacy address, also known as P2PKH (Pay To Public Key Hash), was the original Bitcoin address format proposed by Satoshi Nakamoto. To spend Bitcoin sent to a legacy address, the recipient must provide a signature derived from the private key and the public key. The network verifies the signature against the public key hash using cryptographic functions. Legacy addresses start with the number 1 (or m/n on testnet). They have strong checksum protection — the probability of accepting an incorrectly entered address is 1 in 4.29 billion. Example: 1BUrDeWstWetqBFn5Au8m4JFg2xJaKVN4.
Drawbacks of legacy addresses include case sensitivity, higher transaction fees, slower double-hash calculations, larger QR codes, and inconvenience for manual writing. The address length is usually 34 characters but can be shorter if leading zeros are omitted. The structure includes a prefix, 160-bit public key hash, and checksum, all encoded in Base58Check using 58 characters: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz.
What Is a Bitcoin Address in P2SH Format?
P2SH (Pay to Script Hash) addresses were introduced in January 2012 via BIP-0016, proposed by Bitcoin Foundation chief researcher Gavin Andresen. They start with the number 3 and share the same structure as legacy addresses. P2SH addresses require the recipient to provide a script that matches the script hash when spending funds. This allows for multi-signature addresses and shifting of fee costs from sender to receiver. P2SH addresses can also wrap SegWit transactions (P2WPKH-in-P2SH or P2WSH-in-P2SH), enabling legacy wallets to send SegWit transactions. Example: 3H28N5WuREZ93CNmhWcRcrnykWrMqkhFyWN.
What Is a SegWit Bitcoin Address?
In spring 2016, developers Peter Velle and Greg Maxwell proposed the Bech32 address format (BIP-0173), also known as SegWit or P2WPKH. The SegWit protocol (Segregated Witness) was activated in August 2017, reducing block size by removing signature data. Bech32 addresses start with bc1 (testnet: tb), are up to 90 characters long (typically around 42), and are written in lowercase. They include a human-readable part, separator '1', data, and checksum. Using Bose–Chaudhuri–Hocquenghem (BCH) codes, Bech32 can detect and automatically correct up to four errors. Character set: acdefghjklmnpqrstucwxyz234567890. Example: Bc1uf5tdn87k2uz7r2kl5zrfww362ch3746lq5vse7.
Advantages of SegWit addresses include lower transaction fees, smaller QR codes, and higher error protection. Main disadvantage: not all wallets and services support Bech32. Early adopters include hardware wallets like Ledger Nano S, TREZOR, Digital Bitbox; desktop wallets Electrum, Armory; mobile wallets Edge, GreenAddress, Samourai Wallet, Wasabi Wallet, GreenBits, and Electrum for Android.
Can You Transfer from Legacy to SegWit Addresses?
Since SegWit was a soft fork, legacy and SegWit addresses are fully compatible. You can transfer funds from a legacy address to a SegWit address and vice versa without blockchain-level issues. Practical problems may arise if the sending platform (e.g., an exchange) does not support bc1 addresses. In that case, use a P2SH address (starting with 3) as an intermediate solution. Transfers from bc1 to legacy addresses work without problems. Block explorers that support bc1 indexing include Blockstream.info, Apirone.com, Bitaps.com, Bitupper Explorer, Blockchair, Blockonomics, Blockpath, BTC.com, chaindex, and OXT. Blockcypher, Insight, Tradeblock, and Blockchain.info do not support bc1 indexing.

