The procedure
- Copy the whole address from wherever you keep it, using the copy button or a full selection. Never a partial one.
- Paste it. Do not type any part of it, including the .onion suffix, and do not fix up what you pasted.
- If you need to keep it, store the whole string somewhere you control rather than a fragment or a memory of how it started.
- If you ever find yourself comparing two strings by eye, stop, because that is the step that fails.
Why typing fails
Fifty-six characters of base32 has no redundancy for a human to lean on. Ordinary text can be typed with errors and read correctly anyway, because language provides context that repairs damage as you go. There is no context here. Every character is independent and every one of them matters equally.
The alphabet helps a little, since the four confusable digits were removed for exactly this reason, and the checksum helps a lot by rejecting most mistakes outright rather than sending you somewhere. But rejection is the good outcome and it still costs you the attempt. The better outcome is not making the error.
The failure mode people underestimate is not typing at all. It is retyping from memory a day later, confident that the address began with a particular run of letters. Word-shaped openings encourage this badly, which is the argument on one of the record pages and applies to two of the twelve strings here.
Why partial checking fails
It fails not because it catches nothing but because of what it does to the person doing it. A check that produces a positive result feels like completion. Having compared the first six characters and found them matching, a reader stops, and the stopping is the damage.
A forged address is built to pass exactly that check and to fail every check the reader was not going to do. So partial checking is not a weak version of full checking. It is an invitation to feel finished at the precise moment you are most exposed, which is worse than not checking at all, because somebody who has not checked knows they have not.
The alternative is not a longer partial check. It is not checking by eye in the first place. Copy the string and let the machine handle the comparison, or copy the string and never make a second copy that needs comparing.
What the copy buttons here do
Every copy button on this site copies all 56 characters plus the .onion suffix, with no scheme, no path and no query, because there is nowhere for anything to hide in a bare address. What you paste is exactly what is printed beside the button. That is the whole feature and it is deliberately not more than that.
Questions
Is it safe to type an onion address by hand if I am careful?
It is not a question of care. The checksum will usually catch a mistake, which is the good case, and there is no benefit to typing that would justify the bad case.
What if I only need to check an address rather than enter it?
Then compare copies rather than impressions. Paste both into something that will tell you whether they are identical. A human reading two 56 character strings is the least reliable comparison available.