An address is a short way to write the condition that will lock an output. Bitcoin added new kinds of conditions over the years, and each kind has its own address format, recognisable by its first characters.
- 1…, legacy (P2PKH): the original format, pays to the hash of a public key.
- 3…, script hash (P2SH): pays to a script, used for multisig and for wrapped SegWit.
- bc1q…, native SegWit (P2WPKH and P2WSH): smaller transactions, lower fees, error detecting format.
- bc1p…, Taproot (P2TR): the newest, makes complex conditions look like a simple payment.
Do they work together?
Yes. Any modern wallet can pay any of these formats. The format only describes how the receiving output will be unlocked later. Newer formats usually cost less to spend, because they put less data in the part of the transaction that is counted at full weight.
Lowercase on purpose
Addresses starting with bc1 use an encoding called bech32. It uses only lowercase letters and digits, avoids characters easy to confuse, and includes a checksum that catches typing errors before money is sent.