Three Monero address forms that look alike in the middle and differ only in their first character and their total width.
The shape
- First character
4or8, and nothing else opens one of these- Total width
- 95 characters for two of the three kinds, 106 for the third
- Alphabet
- base58, identical across all three, as at the alphabets
- Case
- mixed, identical across all three
- Extra field
- the eleven characters of extra width in the long form carry an additional value inside the string
- Everything else
- indistinguishable by eye; the middle of one is the middle of another
| Opens with | Total width | Which kind it is |
|---|---|---|
4 | 95 | a primary address |
8 | 95 | a subaddress |
4 | 106 | an integrated address, carrying an extra field |
Three strings side by side
Written as skeletons, the resemblance is the whole story. Below, each x stands for one base58 character and the repeat count is given in words rather than drawn out.
4xxxx ... xxxx ninety four x after the 4
8xxxx ... xxxx ninety four x after the 8
4xxxx ... xxxx one hundred and five x after the 4Two of the three kinds share a first character. Two of the three share a width. No two share both. That is why a reader who checks only the opening character will read a long string as a primary address, and a reader who checks only the width will read a string opening 8 as a primary address. Each test on its own is worth very little here. Together they separate all three, and both cost a few seconds.
Neither reading is difficult, and neither takes longer than a few seconds, which is the argument for doing both every time rather than the quicker one twice.
The extra eleven characters in the long form are not padding and not a suffix you can lop off. They sit inside the encoded value, so the long string is not the short string with something appended; the two are different encodings that happen to share an opening character.
How to check it by eye
Two readings, taken in order
- Read the first character and write down
4or8. Do not proceed on the strength of it. - Count the total width, in tens, and write down 95 or 106. If it is neither, stop; the string is not one of these three.
- Put the two answers together. Four and 95 is primary, eight and 95 is a subaddress, four and 106 is the integrated form.
- Record the result as a kind of address. Resist the pull to turn it into a statement about a party, because the reading does not reach that far.
What a wrong shape means
An 8 in front of a 106 character string is a combination that does not exist. Either the count is off, or the string was assembled from parts of two different strings, which happens when a wrapped address is copied out of a page in two selections.
A first character that is neither 4 nor 8 puts you outside this family of forms altogether. That is not damage; it is a signal to read a different card.
A width between the two figures, say a hundred, is the strongest evidence of truncation on this reference, because there is no legitimate value in the gap. A string cannot be a slightly short integrated address any more than it can be a slightly long primary one.
What none of these mean is that somebody has done something to you. Split selections and wrapped columns account for the overwhelming majority of odd widths in strings this long.
What a correct shape does not prove
The kind is genuinely knowable from two seconds of reading, and that is unusually good for this site. The reading stops dead at the kind. It does not reach any of the following.
- The holder. Not one of the three forms carries an identity, and the kind you have read implies nothing about who produced it.
- Whether two strings of different kinds relate to the same party, or whether two strings of the same kind relate to different ones. Shape does not answer either question.
- What the extra field in the long form contains. It is encoded inside the run and no reader can extract it by looking.
- Whether the kind you are holding is the kind you were meant to be given.
- Whether the string is current, was ever used, or works at all. Nothing here is tested against a chain.
What this card is not
The primary form has a fuller treatment of its own on a Monero address, including why a fixed width is such a strong test. Bitcoin address forms are unrelated in both alphabet and width and start at the older form. This card also has nothing to say about what any interface calls these strings; it describes the characters only.
Questions people send about this shape
Is an integrated address a primary address with something added on?
Not in a way you can see or undo. The extra field is encoded inside the string rather than appended to it, so the long form is not the short form plus a suffix. By eye the two are separated by width alone, since they share an opening character and share an alphabet. If a string is 106 characters and opens with 4, that is the finding, and it is the whole finding.
Can I tell a subaddress from a primary address at a glance?
You can tell the kind, reliably, from the first character together with the total width. What you cannot do is turn that into a statement about who is on the other end. Reading a shape gives you a category. The category has no owner attached to it, and no amount of care with the reading will add one.