Skip to article
Degrees of SatoshiFollow the connections.
Degrees of Satoshi/ Encyclopedia

Encyclopedia Bitcoin basics · Entry 383

Bitcoin address types: why some start with 1, some with 3, and some with bc1

Theme
Bitcoin basics
Sources
8 cited records
Reading time
About 9 minutes
Automated verification
Substantive update
In this article

At a glance

Key facts

Key facts for Bitcoin address types: why some start with 1, some with 3, and some with bc1
FactDetailSource
Legacy (P2PKH)Starts with 1; Base58Check; 26 to 35 characters[1]
Script hash (P2SH)Starts with 3; version byte 5; BIP13, 18 October 2011[2]
Native SegWitStarts with bc1q; bech32; BIP173, 20 March 2017[5]
TaprootStarts with bc1p; bech32m; BIP350, 16 December 2020[6]
Taproot activationBlock 709,632 on the main network[7]
Bech32 error detectionThe Bech32 checksum detects up to four character substitutions within its specified length limit; other error types have different properties[5]
Bitcoin Core supportVersion 0.16.0 (26 February 2018) offered legacy, p2sh-segwit and bech32 address types[8]
01

An address is a checksummed destination, not an account

A Bitcoin address is a short string of letters and numbers that tells a wallet where to send coins. The Bitcoin Wiki describes the classic form as “an identifier of 26-35 alphanumeric characters” and is careful about what it is not: addresses “are not wallets nor accounts, and do not carry balances. They only receive funds.” A transaction has no “from” address in the protocol; it spends specific earlier outputs, which our article on UTXOs explains.

Under the hood, every address encodes a spending condition (a hash of a public key, or a hash of a script) plus a checksum, a few extra characters computed from the rest so that a typo is rejected rather than sending coins into the void. The formats differ in how they encode that, and the first character or two tells you which format you are looking at. That prefix is the whole subject of this article.

This page shows prefixes only, never a full address. The site keeps real, checksum-verified examples of every format in the wallet library, each attached to a documented history, and that is the place to look at one.

02

Addresses starting with 1: the original pay-to-public-key-hash format

The oldest format, called P2PKH for pay-to-public-key-hash, uses an encoding called Base58Check. The wiki notes that it uses “random digits and uppercase and lowercase letters, with the exception that the uppercase letter ‘O’, uppercase letter ‘I’, lowercase letter ‘l’, and the number ‘0’ are never used,” to avoid look-alike characters. Most such addresses are 34 characters; some are shorter. On the main network the encoded result always begins with the digit 1.

These addresses are case-sensitive. The wiki warns that if a character is not transcribed exactly, “including capitalization,” the address will be rejected. That is a feature (the checksum catches the mistake) and an annoyance (reading one aloud is painful), and the annoyance is what later formats set out to fix. Addresses from Bitcoin’s first years, including the ones tied to the earliest entries in the wallet library, are written this way, and they still work.

03

Addresses starting with 3: pay to a script, not a person

In October 2011 Gavin Andresen proposed BIP13, a new address type that would represent “the encoded hash of a script, rather than the encoded hash of an ECDSA public key.” The main network uses version byte 5 for these, which after encoding produces addresses beginning with the character 3. The companion proposal, BIP16 (pay to script hash), dated 3 January 2012, set the rule that the person redeeming the coins, not the person sending them, supplies the script, so that a sender can fund “any arbitrary transaction, no matter how complicated, using a fixed-length 20-byte hash that is short enough to scan from a QR code.” The new rules applied to blocks timestamped from 1 April 2012.

The original motivation was escrow and multi-signature: an address where two of three keys must sign, say, without the sender needing to know or care. Later the format got a second life. When Segregated Witness arrived, BIP141 allowed the new witness scripts to be wrapped inside a P2SH address so that older wallets, which could not parse the new format, could still pay SegWit users. Bitcoin Core made that wrapped form its default address type in version 0.16.0, released 26 February 2018.

So an address starting with 3 tells you only that a script is behind it. It might be a multi-signature vault, a wrapped SegWit key, or something else. The prefix does not say which; the script is revealed only when the coins are spent.

04

Addresses starting with bc1q: native SegWit and the bech32 format

Segregated Witness, BIP141, was proposed in December 2015 by Eric Lombrozo, Johnson Lau and Pieter Wuille. It moved signature data into a separate structure called the witness, which fixed a long-standing problem called transaction malleability and changed how block space is counted. It also defined two new output types: pay-to-witness-public-key-hash, with a 20-byte program, and pay-to-witness-script-hash, with a 32-byte one. Those needed an address format of their own.

BIP173, by Pieter Wuille and Greg Maxwell and dated 20 March 2017, supplied it, and its motivation reads like a list of complaints about Base58: “the mixed case in base58 makes it inconvenient to reliably write down, type on mobile keyboards, or read out loud,” it “needs a lot of space in QR codes,” and its checksum “has no error-detection guarantees.” The replacement, bech32, has three parts: a human-readable prefix, bc for the main network and tb for the test network; a separator, which is always the digit 1; and the data. The data alphabet drops 1, b, i and o to avoid confusion, and encoders must output lowercase only.

The checksum is the real upgrade. BIP173 guarantees “detection of any error affecting at most 4 characters,” with less than a one in a billion chance of missing a larger error. The first data character encodes the witness version, and in the bech32 alphabet the value 0 is written q, which is why every native SegWit address begins bc1q. Version 0 addresses are always 42 or 62 characters long. Bitcoin Core added “full support for native segwit addresses (BIP173 / Bech32)” in version 0.16.0, in February 2018.

05

Addresses starting with bc1p: Taproot and the bech32m fix

Bech32 turned out to have a flaw. BIP350, by Pieter Wuille and dated 16 December 2020, describes it: “whenever the final character is a ‘p’, inserting or deleting any number of ‘q’ characters immediately preceding it does not invalidate the checksum.” Version 0 addresses were safe because their lengths are fixed, but future versions would not be. The fix, bech32m, changes one constant in the checksum calculation. The rule became: “If its witness version is 0, encode it using Bech32. If its witness version is 1 or higher, encode it using Bech32m.”

Witness version 1 is Taproot, defined in BIP341 by Pieter Wuille, Jonas Nick and Anthony Towns. A Taproot output is a 32-byte program that is itself a public key, spendable either directly with a Schnorr signature (the key path) or by revealing one of several scripts committed to in a Merkle tree (the script path). On the main network the rules activated at block 709,632, after a signaling period that began on 24 April 2021 with a 90% miner threshold. Our Taproot explainer covers what it changed.

In the bech32 alphabet the value 1 is written p, so a Taproot address begins bc1p. Otherwise it looks like its bc1q sibling: same prefix, same separator, lowercase, and a checksum that catches typos. Software that only understands bech32 will reject a bech32m address rather than mis-send to it, which is the point.

06

All four formats are valid, and coins move freely between them

An address format describes the receiver’s lock, not the sender’s. A wallet holding coins at a legacy address can pay a bc1p address and vice versa; the only requirement is that the sending software knows how to encode the destination. The site’s wallet pages carry examples of every era, from the reward of the genesis block onward.

Two habits follow from the formats. First, copy addresses rather than retyping them; bech32 addresses were designed to be read aloud and are case-insensitive, which the wiki notes, while old-style addresses are not. Second, use a fresh address for each payment. The wiki recommends that “a unique invoice should be used for each transaction,” and modern wallets, built on the seed-phrase standards described in our keys article, generate new ones at no cost.

Direct answers

Questions people ask

Can I send bitcoin from a legacy address to a bc1 address?

Yes. The address format describes how the receiver’s coins are locked, not how the sender’s were. Any wallet that knows how to encode a bech32 or bech32m destination can pay it from coins held at a legacy or P2SH address, and the reverse is equally routine.

Are Bitcoin addresses case sensitive?

Old-style addresses beginning with 1 or 3 are case-sensitive, and the wiki warns that a wrong capital letter will be rejected. Bech32 and bech32m addresses beginning bc1 are case-insensitive; the standard requires encoders to output lowercase and decoders to reject mixed case.

What does an address starting with 3 mean?

It is a pay-to-script-hash address, defined by BIP13 in 2011. The coins are locked to the hash of a script rather than a single public key. That script might require several signatures, or it might wrap a SegWit key so that older wallets can pay it; the prefix alone does not say which.

What is the difference between bc1q and bc1p?

The fifth character encodes the witness version. In the bech32 alphabet q is 0 and p is 1. Version 0 is native SegWit, encoded with bech32 under BIP173; version 1 is Taproot, encoded with the corrected bech32m checksum under BIP350 and activated at block 709,632.

Inspect the evidence

The answer and key facts have stable claim links. These records retain the scope and qualification when reused.

A Bitcoin address encodes a payment destination with error-detection information. On mainnet, common forms begin with 1 for P2PKH, 3 for P2SH, bc1q for SegWit version 0, and bc1p for Taproot. They represent different locking conditions and encodings. Compatibility depends on the sending wallet; an address prefix alone does not identify its owner or make a payment recoverable.

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Legacy (P2PKH): Starts with 1; Base58Check; 26 to 35 characters

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Script hash (P2SH): Starts with 3; version byte 5; BIP13, 18 October 2011

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Native SegWit: Starts with bc1q; bech32; BIP173, 20 March 2017

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Taproot: Starts with bc1p; bech32m; BIP350, 16 December 2020

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Taproot activation: Block 709,632 on the main network

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Bech32 error detection: The Bech32 checksum detects up to four character substitutions within its specified length limit; other error types have different properties

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Bitcoin Core support: Version 0.16.0 (26 February 2018) offered legacy, p2sh-segwit and bech32 address types

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Revision history
  1. — Initial Bitcoin encyclopedia entry at this permanent URL.
  2. — Revised direct answer to preserve source scope and qualifications. Corrected key fact: Bech32 error detection
  3. — Added reusable claims, explicit source locators, and matching Markdown and JSON. This publishing change does not itself establish factual verification.

Source register

Sources and references

Retrieval dates and locators are recorded individually.
  1. Invoice addressBitcoin Wiki

    Gives the 26 to 35 character length, the excluded look-alike characters, the 1, 3 and bc1 prefixes, case sensitivity of old-style addresses, case insensitivity of bech32, the advice to use a unique address per transaction, and the statement that addresses are not wallets or accounts.

    Locator: Gives the 26 to 35 character length, the excluded look-alike characters, the 1, 3 and bc1 prefixes, case sensitivity of old-style addresses, case insensitivity of bech32, the advice to use a unique address per transaction, and the statement that addresses are not wallets or accounts. · Retrieved: 2026-10-02T14:48:38.667677+00:00Open source
  2. BIP 13: Address Format for pay-to-script-hashGavin Andresen · 2011-10-18Bitcoin Improvement Proposals (github.com/bitcoin/bips)

    Defines the script-hash address type, version byte 5 on the main network, and the resulting leading character 3.

    Locator: Defines the script-hash address type, version byte 5 on the main network, and the resulting leading character 3. · Version / scope: 927b6de9915c9262615a6399de51b200f81e5aa4 · Retrieved: 2026-10-02T15:04:13.401381+00:00Open source
  3. BIP 16: Pay to Script HashGavin Andresen · 2012-01-03Bitcoin Improvement Proposals (github.com/bitcoin/bips)

    Moves responsibility for supplying the script to the redeemer, cites the 20-byte hash fitting a QR code, and applies the rules to blocks timestamped from 1 April 2012.

    Locator: Moves responsibility for supplying the script to the redeemer, cites the 20-byte hash fitting a QR code, and applies the rules to blocks timestamped from 1 April 2012. · Version / scope: 927b6de9915c9262615a6399de51b200f81e5aa4 · Retrieved: 2026-10-02T15:04:13.407672+00:00Open source
  4. BIP 141: Segregated Witness (Consensus layer)Eric Lombrozo, Johnson Lau, Pieter Wuille · 2015-12-21Bitcoin Improvement Proposals (github.com/bitcoin/bips)

    Defines the witness, the malleability fix, block weight, the 20-byte P2WPKH and 32-byte P2WSH programs, and their P2SH-wrapped forms.

    Locator: Defines the witness, the malleability fix, block weight, the 20-byte P2WPKH and 32-byte P2WSH programs, and their P2SH-wrapped forms. · Version / scope: 927b6de9915c9262615a6399de51b200f81e5aa4 · Retrieved: 2026-10-02T15:04:13.421045+00:00Open source
  5. BIP 173: Base32 address format for native v0-16 witness outputsPieter Wuille, Greg Maxwell · 2017-03-20Bitcoin Improvement Proposals (github.com/bitcoin/bips)

    Lists the problems with Base58, defines bech32 with the bc prefix, the 1 separator, the alphabet in which q is 0 and p is 1, lowercase output, the four-character error guarantee and the 42 or 62 character length of version 0 addresses.

    Locator: Lists the problems with Base58, defines bech32 with the bc prefix, the 1 separator, the alphabet in which q is 0 and p is 1, lowercase output, the four-character error guarantee and the 42 or 62 character length of version 0 addresses. · Version / scope: 927b6de9915c9262615a6399de51b200f81e5aa4 · Retrieved: 2026-10-02T15:04:13.515182+00:00Open source
  6. BIP 350: Bech32m format for v1+ witness addressesPieter Wuille · 2020-12-16Bitcoin Improvement Proposals (github.com/bitcoin/bips)

    Describes the bech32 checksum weakness with trailing p and inserted q characters, the corrected constant, and the rule that version 0 uses bech32 while version 1 and higher use bech32m; its test vectors begin bc1p.

    Locator: Describes the bech32 checksum weakness with trailing p and inserted q characters, the corrected constant, and the rule that version 0 uses bech32 while version 1 and higher use bech32m; its test vectors begin bc1p. · Version / scope: 927b6de9915c9262615a6399de51b200f81e5aa4 · Retrieved: 2026-10-02T15:04:13.517498+00:00Open source
  7. BIP 341: Taproot: SegWit version 1 spending rulesPieter Wuille, Jonas Nick, Anthony Towns · 2020-01-19Bitcoin Improvement Proposals (github.com/bitcoin/bips)

    Defines version 1 outputs as a 32-byte public key spendable by key path or script path, and records main-network activation at block 709,632 after signaling from 24 April 2021 with a 90% threshold.

    Locator: Defines version 1 outputs as a 32-byte public key spendable by key path or script path, and records main-network activation at block 709,632 after signaling from 24 April 2021 with a 90% threshold. · Version / scope: 927b6de9915c9262615a6399de51b200f81e5aa4 · Retrieved: 2026-10-02T15:04:13.593548+00:00Open source
  8. Bitcoin Core version 0.16.0 released2018-02-26Bitcoin Core (bitcoincore.org)

    Announces full SegWit wallet support, the legacy, p2sh-segwit (default) and bech32 address types, and full support for BIP173 addresses.

    Locator: Announces full SegWit wallet support, the legacy, p2sh-segwit (default) and bech32 address types, and full support for BIP173 addresses. · Retrieved: 2026-10-02T14:48:41.357733+00:00Open source
How this article was made

Research and drafting use AI assistance. A separate automated review checks claims against primary sources; no external expert or named human review is implied. Publication, substantive editing, source retrieval and verification are recorded separately. This version was independently checked by an automated reviewer on 2 October 2026.

Editorial method and corrections

Degrees of Satoshi editorial project. “Bitcoin address types: why some start with 1, some with 3, and some with bc1.” Published 2026-09-23; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/bitcoin-address-types/