The cards are filed by format. This page is filed the other way round, by the thing in front of you, so you can arrive with a symptom and leave with a card.
Read down the left column until you find the thing you are looking at, then follow the link on the right. The middle column names the rule that has been broken, which is often enough on its own.
A fault in these tables is a statement about a string, not about a person. Most are caused by something that happened to the text in transit, and the card at the end of each row says which ones can only arise that way.
A character that cannot be there
| What you are looking at | Which rule that breaks | Where it is written up |
|---|---|---|
| A capital letter inside an address printed in lower case | The onion form of base32 is published lower case | The onion address |
| A g, or any letter after f, inside a run of hexadecimal | Hex stops at f | A file hash |
| A 0, 1, 8 or 9 inside an onion address body | Those four digits are absent from the alphabet | The four alphabets |
| A capital O or a digit zero inside a Bitcoin address in the older alphabet | Base58 removes both to stop them being confused | A Bitcoin address in the older alphabet |
| A plus or a forward slash where base58 is expected | Base58 contains no punctuation at all | A Bitcoin address in the older alphabet |
| A letter that renders like a Latin letter but is not one | The host alphabet admits a fixed set of characters and no visual equivalents | A host built from lookalike characters |
| A space inside a string that has no separator in its format | The alphabet excludes whitespace | A block that lost its line breaks |
The count is off
| What you are looking at | Which rule that breaks | Where it is written up |
|---|---|---|
| An address of 94 characters where 95 is the rule | Fixed total length | A Monero address |
| A hexadecimal run with an odd number of characters | Two hex characters cover one byte, so lengths are even | A file hash |
| A phrase of 11 words | The permitted word counts are fixed and 11 is not one of them | A wallet seed phrase |
| A six digit code showing only five digits | A leading zero has been dropped, usually by a spreadsheet | A one time code |
| A fingerprint of 39 hexadecimal characters | Fixed length, and one character short of it | A key fingerprint |
| A short identifier being read as though it were a full fingerprint | Two different lengths, two different things | A short key id and a long key id |
| An onion host body that is not 56 characters | Fixed length before the full stop | The onion address |
Structure, separators and position
| What you are looking at | Which rule that breaks | Where it is written up |
|---|---|---|
| A percent sign with only one character after it | Percent encoding takes exactly two hex digits | Percent encoding inside a link |
| Two at signs in a string shaped like an email address | Exactly one separator between the two parts | A string shaped like an email address |
| A host name carrying two full stops | The onion form has one, immediately before the suffix | A host built from lookalike characters |
| An amount written with both a comma and a full stop | One separator, in one role | An amount and its decimal places |
| A file name with an extension behind the extension | The last extension is the operative one | An extension, and the second extension behind it |
| A link that ends in the full stop of the sentence around it | The punctuation of the prose has been taken into the string | A link with a token inside it |
| An archive line whose size column has run into the name column | Fixed column order, lost to reflowing | A line from an archive listing |
Armoured blocks
| What you are looking at | Which rule that breaks | Where it is written up |
|---|---|---|
| Four hyphens where a header line takes five | The delimiter width is fixed on both sides of the line | A PGP public key block |
| No blank line between the header line and the body | The blank line is structural, not decoration | A clear signed message |
| A final line beginning with an equals sign that is not there | The armour checksum sits on its own line at the foot | The checksum line at the foot of an armoured block |
| A block whose opening line and closing line name different things | The two lines must agree on the block type | A detached signature block |
| A block that has arrived as one continuous line | Line structure is part of the format | A block that lost its line breaks |
| A block where every line has gained a leading marker | A quoting layer has been applied over the block | A quoted message block |
| A block that begins correctly and stops | No closing line, so no complete block | A PGP encrypted block |
Times and plain numbers
| What you are looking at | Which rule that breaks | Where it is written up |
|---|---|---|
| A date and time printed with no offset or zone | An unqualified time is not a moment | A timestamp printed on a page |
| A 13 digit integer being read as a count of seconds | Digit count separates seconds from milliseconds | A time written as a plain integer |
| A time under an image that disagrees with the time on the page | Two independent fields, two independent origins | The line of metadata under an image |
| An amount with more decimal places than the unit admits | The number of places is fixed by the unit | An amount and its decimal places |
Things that look like faults and are not
These come up often enough to be worth naming. None of them is a violation of any rule on this site.
- A perfectly formed string that does not work. Format and function are separate questions and no card here addresses the second.
- The same hexadecimal value printed in upper case in one place and lower case in another. Case carries no meaning in hex, so the two are the same value.
- A base64 body broken into many short lines. Armoured bodies are wrapped on purpose and the wrapping is part of the format rather than damage to it.
- A long identifier displayed with its middle replaced by an ellipsis. That is an interface abbreviating for the screen, not a truncated value.
- Two correctly formed addresses that differ from each other. Both can satisfy every rule at once; being different is not evidence against either.
- A password refused by a form for being too short. Length policies are rules a service applies, not properties of a format, and a password explains the difference.
- A page that looks different from the way it looked before. Layout is not a shape.
If your symptom is not here, the format cards are listed in full on every shape on this reference, and the reasoning behind treating any of this as weak evidence is on what a shape proves, and where it stops.