Swap zero/O
dark0de reads like darkode at a glance
A family-and-small-team checklist for checking onion addresses before you click, not after you panic.
12 min read
ReadYes: a v2 onion address is a short string of 16 base32 characters followed by .onion, while a v3 address is 56 base32 characters followed by .onion. That length difference alone tells you which cryptographic generation you are looking at, but it does not tell you whether the address is genuine — so learning how to recognize plausible typos or spoofed mirrors still depends on other checks.
The old v2 format used an 80-bit public key and a truncated hash, which is why the human-visible part stayed short. The v3 format uses a longer ed25519 public key, a version byte, and a checksum, producing that long 56-character string. In practice, v2 addresses are no longer supported by current Tor Browser releases, so if someone shares a short “onion” link today, it is either a historical reference or a trap that will not open properly.
Think of the address like a house number. A longer house number might belong to a newer street grid, but it does not prove the house is the friend’s home you meant to visit. A single missing character in a v3 address almost always points to a different service — often one built to look familiar.
Never “correct” a slightly distorted onion address by guessing a missing or swapped character. If the copied link is malformed, discard it and get a fresh reference from a source you already trust.
A spoofed mirror is not convincing because it copies the whole site; it is convincing because it copies the part your eyes actually check — the first few characters, the last few characters, and the overall shape. The middle of a v3 onion address is 56 base32 characters, and almost nobody reads all of them. Attackers exploit that scanning habit.
When you glance at an address, your brain creates a “visual checksum”: it remembers length, a couple of letters near the start, and maybe the ending. A fake address like facebookcorewwwi.onion vs faceb00kcorewwwi.onion survives because the middle carries no meaning to a tired reader. In v3 addresses, attackers make a new keypair until they get the same first 2–3 and last 2–3 characters, then publish that look-alike.
7abc…xyz vs 7acb…xzydark0de reads like darkode at a glance
zonatools vs zoantools — invisible in lowercase
shopvvorld vs shopworld — extra v hides in monospace
market-place vs marketplace — directory typo, not brand
ru vs nu in lowercase at small font size
The practical lesson for a parent or team lead: do not compare “beginning and end.” Pick three separated slices — for example characters 8–11, 30–33, and 52–55 — and compare those against a source you already trust. If the fake was built to match the edges, the middle slices will not align.
A valid onion address has exactly 56 characters after the protocol and before onion — no dashes, no dots, no uppercase letters. A fake directory sometimes shows 56-character-looking strings with extra symbols to confuse the count.
When two links arrive from different people and differ by only one character, treat both as untrusted until you open neither.
A signed index or a community thread can make a link more likely to be genuine, but it cannot make it safe on its own. The signature proves only one thing: whoever controls the signing key approved that exact text at some point in the past. It does not prove that the person is honest, that the key was not stolen, or that the link still points where it did when the note was signed.
Think of a signature as a wax seal on an envelope. The seal shows the envelope has not been opened since it was sealed, but it does not tell you who really owns the ring, whether the letter inside is true, or whether the address written on the paper is the one you meant to visit.
A signature covers the bytes that were signed, not the web page you are looking at. If a post says "the market address is abc123.onion" and that string is signed, then changing one character invalidates the signature. But the same key could also sign a different message tomorrow saying "the market address is abc124.onion" — and that new signature would also be valid.
abc123.onionCompare every character of the address with the signed text, not just the first six or seven.A community thread is weaker still. Anyone can reply with a "verified mirror" and hope people copy it without checking. A thread with many replies and old accounts is not proof: accounts get sold, and forums get compromised. The fact that a link appears in a popular thread simply means many people saw it, not that many people verified it independently.
Keep a small, local list of addresses you have already used successfully. When a thread gives you a new address, compare it against your list — not against the thread's claim that it is official.
A valid signature on a spoofed address is still dangerous. If the signer was tricked or compromised, the signature makes the fake look stronger, not safer.
In practice, the most useful check is this: the signed or referenced address must match the address you are about to open, character for character, with no "almost the same" exceptions. If the signed text says one address and the thread you are reading shows another, close the tab and start over from your own saved copy.
Before you paste anything, treat the address like a shared password: one person reads it aloud slowly, another checks it against a known-good source, and nobody taps “connect” until both agree. That single habit removes most “close enough” mistakes before Tor Browser ever touches the link.
Do not “fix” a suspicious address by retyping the wrong part from memory. Retyping from memory is exactly how a near-miss onion becomes a working phishing page.
A useful family or small-team rule is: the link is not ready until two people have checked it from two different copies. One person can be holding the address from an old signed list, while the other reads from the new message or forum post. If they disagree even once — even on a single character — the link is not ready.
On a v3 onion, check the last three and first three characters, not the middle. The middle is too long for most people to hold in short-term memory, but the ends are where typos and spoofs tend to hide. On a v2 address, check the final four characters before the .onion suffix, because that is the checksum that catches accidental edits.
Say the suspicious part in a different accent or rhythm. It sounds silly, but it breaks the pattern your eyes expect to see.
If the link came with extra context — “official backup,” “new domain,” “same as before” — ask what evidence comes with that claim. A phrase like “same as before” should trigger a check of before: do you still have the old address, and do they match anywhere except the first eight characters?
| Check | Weak check | Strong check |
|---|---|---|
| Read the link once | catches only huge errors | catches very little, gives false confidence ;; Compare ends of address |
For a small team, make the rule boring: no onion link gets opened from a chat message until someone has pasted it into a team note and someone else has replied “checked.” The reply matters more than the check itself.
No — opening the page starts a new evidence phase. You are no longer verifying the link alone; you are comparing what the loaded page claims against what a trustworthy copy should look like. But act calmly: closing the tab is enough for most early mismatches, and logging in or entering anything is what actually converts a suspicion into damage.
You opened abc.onion and moments later the address bar shows a different onion or an exit-hop pattern you never requested. Treat this as a red banner, not a cosmetic quirk.
A market that normally shows its own PGP-signed greeting, captcha style, or welcome layout suddenly asks for a “re-verification” or shows a nearly identical but blurrier logo. That gap is the fingerprint not matching.
If the first screen pushes you to enter a mnemonic, private key, vendor password, or “decrypt your session” before you have even browsed, the page is asking for something a real index never needs.
Rare mirrors load in fits, but a consistent pattern of unusual delays on clicks plus slightly off wording is a sign the copy is being served through a shim.
Inside onion services, TLS-style assumptions do not transfer in the way people expect. A .onion address already provides transport encryption through Tor, so an extra padlock does not mean the page is the real market; it means the hidden service configured a certificate. A phishing clone can also have a certificate. What matters is whether the page content matches the signed, previously seen identity of the market — its PGP key, its layout fingerprints, its public announcements, and the exact onion address after any redirect.
Do not “test” a suspicious page by entering a fake password. Some clones collect attempts and use them to infer how cautious you are, while the real risk is any form interaction that sends data out before you have confirmed the page.
Before you next need to decide under stress, save one short text file or printed card with the exact onion and one or two visual fingerprints for each service your family or team trusts. A loaded page can only be judged against something already on your side.