The newer Bitcoin address form: a single case string opening bc1, with a longer checksum built into its final characters.
The shape
- Opening
bc1, wherebcis a fixed part and1is the separator that ends it- Case rule
- one case throughout, conventionally lower; a mixture is invalid by definition
- Body alphabet
- thirty two characters, from which
1,b,iandoare absent - Common width
- 42 characters in total for the form most often seen
- Version character
- the character straight after
bc1, which distinguishes the variants - Checksum
- the final six characters, derived from everything before them
bc1qexampleexampleexampleexamplexxxxxxxxxx
42 characters: bc1q, then example four times, then ten xexample happens to sit entirely inside the body alphabet, which is why it can be spelled here at all.The 1 in the opening is doing structural work rather than decorative work. It marks the end of the fixed part and the start of the body, and because 1 is excluded from the body alphabet it can never be mistaken for content. That is a small piece of format design with a useful side effect for a reader: a correctly formed string of this kind contains exactly one 1, and it sits in position three.
Casing is where this form parts company with the older one most sharply. In the older alphabet the case of each letter is content, so a string that has been lower cased somewhere in transit is a different string and a broken one. Here the case is not content: the same address is the same address in either case, and it is the mixture alone that the rule forbids. Lower case is the convention because it reads more easily at small sizes, and because a uniformly lower case string cannot acquire a capital by accident without something having visibly happened to it.
The longer variant
The character immediately after bc1 tells you which variant you are holding. The widely seen form uses q and runs to 42 characters. A newer form uses p and runs to 62.
bc1pexampleexampleexampleexampleexampleexampleexampleexamplexx
62 characters: bc1p, then example eight times, then two xA reader who has only met the shorter form sometimes treats the longer one as corrupted, on the reasoning that addresses are about that long and this one is not. Width alone does not make a string wrong here, because two widths are ordinary. What matters is that the width you see is one of the widths the format uses, and that the rest of the rules hold.
How to check it by eye
Five passes over a bc1 string
- Read the first four characters. They give you both the family and the variant:
bc1qorbc1p. - Scan for a change of case. One capital letter inside an otherwise lower case string is not untidiness, it is invalidity, and the rule makes this the fastest genuine test on the card.
- Count the
1characters. There should be exactly one, in position three. A second one sitting in the body is a lookalike substitution rather than content. - Look for
b,iandoafter the separator. None of the three belongs in the body, and any of them ends the reading. - Check the total width against the variant you read in step one, using counting by eye if the string is long.
What a wrong shape means
A capital in the middle of a lower case string almost always means the string passed through something that applies sentence case or title case to text it does not recognise. Message composers do this. Some document editors do it. The string is now invalid, and it is invalid in a way that is easy to miss on a phone screen where letterforms are small.
A stray 1 in the body is the classic lookalike substitution, where a lower case l was read as a one or the reverse. The mechanism is the same one described at a host built from lookalike characters, applied to a shorter string with a stricter alphabet.
A missing bc, with everything after it intact, usually means the string was quoted from somewhere that treated the two letters as a prefix and stripped them. They are a fixed part of the address rather than an ornament, and a body without them is not an address of this kind.
A width that matches neither variant means a truncation or an accidental extension, and truncation is the more common of the two. As elsewhere in this family, none of this is evidence about a person. It is evidence about the path the string took.
What a correct shape does not prove
The checksum in this form is longer than in the older one and rejects a wider set of accidental changes. That improvement is entirely about accidents. Everything below stays out of reach.
- Whether the destination is the one intended. A longer checksum on a substituted address is simply a longer checksum that agrees.
- Whether the version character is the one you wanted. Both variants are valid strings; only your own records say which you were expecting.
- Whether the string matches the one printed elsewhere on the same page, or encoded in a code beside it. Comparing those is the subject of the payment code card.
- Whether the case you are reading is the case that was published. Something that lower cased the string on the way through changed nothing about its validity and left no trace.
- Whether anyone can be identified from it. No format in this family carries an identity.
What this card is not
Addresses beginning 1 or 3 are a different shape with a different alphabet, described at the older form. The thirty two character body alphabet is set out with the others on the alphabets. Nothing here concerns the amount being sent, which is an amount and its decimal places.