tordark

Onion Addresses Explained: Why Dark Web Links Rotate and Expire

A stylised onion-service diagram showing a hidden service reached through layered Tor circuits
An onion address is not a name on a registry. It is a public key, wearing a hostname.

A .onion address that loaded last week and fails today has not necessarily gone anywhere. Onion addresses are built to expire, rotate and multiply by design, and almost everything that reads as "the link is broken" is the protocol behaving exactly as specified rather than a site going dark. This guide covers what a v3 onion address actually is, how it stays reachable, why it stops, and the one thing none of that mechanism can ever tell you.

What a .onion address actually is

A v3 onion address is the base32 encoding of a 32-byte ed25519 public key, a checksum and a version byte, which is why it always runs to 56 characters. There is no separate identity behind it and no registry that issued it. The address is the key.

That single fact is what the IETF standard for the format calls self-authentication:

".onion names are self-authenticating, in that they are derived from the cryptographic keys used by the server in a client-verifiable manner during connection establishment."

— Jacob Appelbaum and Alec Muffett, RFC 7686, IETF, October 2015

Reaching the address proves you are speaking to whoever holds the matching private key. Nothing issued that key, nothing can revoke it, and nothing outside the math vouches for it. "Ownership" of a .onion name, the standard notes, is derived solely from control of the keypair. There is no company to call and no certificate authority in the middle, which is the property that makes onion services useful and the property that makes a name meaningless as a source of trust.

Why it looks unreadable, and why that is the point

A 56-character string of what looks like random letters and digits is not a design failure; a readable name was never the goal. The label is a hash-derived encoding of the key, not a word chosen by the operator, so it is not meant to be memorable, and RFC 7686 says so directly: the cryptographic label component of a .onion name "is not intended to be human-meaningful."

The same document names the risk that follows from that in its own security considerations: an attacker may be able to find a key that produces an address visually or semantically similar to a real one. That risk is magnified, not reduced, by the fact that .onion names are not human-meaningful in the first place, so nothing about how a name looks helps a reader catch a forgery. The RFC's own mitigation is not "read carefully." It is to rely on bookmarks and other trusted stores rather than re-typing or eyeballing an address from memory. That is the entire reason a signed mirror list exists on a site like this one: it replaces the reader's eye, which cannot catch a two-character swap in a 56-character string, with a signature, which can.

How an address stays reachable

Diagram of the Tor network showing a client circuit relayed through several nodes toward a hidden service
A load succeeding depends on routing information sitting in the right place at that moment, not on a server being switched on.

An onion service does not sit waiting at a fixed network location the way an ordinary website does. It publishes a signed descriptor, listing where it can currently be reached, to a small set of relays on the Tor network carrying the HSDir flag. A client wanting the address fetches that descriptor from the same relays before it can connect at all.

Two things make that arrangement change constantly rather than sitting still. The descriptor carries its own lifetime, and services set that field to 180 minutes, so it is republished on a timer well before it would lapse. And the specific relays responsible for holding it rotate on a fixed schedule, a new set roughly once a day, precisely so that no single fixed set of directories can be targeted to remove a service permanently. Reachability, in other words, is a continuously refreshed arrangement between a service and the network, not a static fact about a domain.

Why an address rotates and expires

Diagram of a Tor circuit routing traffic through entry, middle and exit relays
Onion services inherit Tor's core trade: no fixed IP to defend, and no IP-based rate limiting either.

Onion services have no equivalent of ordinary rate limiting, because hiding the client's address is the entire point of the design, and that leaves an operator with fewer tools against a flood of connection requests than a normal website has. Running several addresses at once, and retiring one under pressure in favour of a fresh one, has long been the blunt answer.

Tor's more targeted answer shipped in version 0.4.8: a proof-of-work challenge that a service can turn on only when it is actually under load. Its designers stated the reason for it plainly in the proposal that led to it:

"If we ever hope to have truly reachable global onion services, we need to make it harder for attackers to overload the service with introduction requests."

— George Kadianakis, Mike Perry, David Goulet and tevador, Tor Proposal 327, 2 April 2020

The mechanism stays dormant until a service is under stress, then asks arriving connections to solve a puzzle and serves them roughly in order of the effort shown, which raises the cost of a flood without asking legitimate visitors to identify themselves. An address rotating under pressure and a proof-of-work queue kicking in are two responses to the same underlying problem, and neither one means a service is failing; both mean it is being attacked and is coping.

Three reasons a link stops loading

A blank page in the browser looks identical regardless of which of these caused it, which is exactly why the distinction is worth holding onto rather than reaching for the nearest replacement link.

CauseWhat is actually happeningWhat to do
LoadThe service is shedding or queuing connections under a proof-of-work challengeWait; this resolves on its own
RetirementThe address was withdrawn on purpose; the descriptor can still resolve for roughly three hours afterwardGet the operator's current signed list, not a search result
ShutdownThe service itself has stopped, for any reason from a seizure to an operator simply leavingTreat it as gone; no address will fix this

The middle row is the one that catches people out. "It loaded an hour ago" establishes very little, because a retired address keeps answering for a while after it stops being the current one, which is precisely long enough to mislead someone who assumes recency means correctness.

What none of this proves

An operator in a green-lit server room watching a glowing red line chart fall toward the floor
A page loading and a page being trustworthy are two separate questions, answered by two separate checks.

Every mechanism above governs whether an address resolves. None of it governs whether the operator behind that address is who they claim to be. A second onion address published by the same name is a separate key with no relationship to the first beyond an operator's say-so, and inspecting either address, however carefully, will never settle that on its own.

What settles it is a list of addresses the operator has signed with a key readers can check independently, the method our PGP verification walkthrough sets out step by step. A working link answers one question. A signature answers the other, and it is the only one of the two that has anything to do with trust, which is why every entry in the market directory is paired with one rather than left to speak for itself.

Common questions about onion addresses

Why did my onion link stop working?

One of three reasons, and a browser cannot tell you which. The service can be shedding load and answering slowly rather than not at all. The address can have been retired by its operator while the service itself keeps running under a new one. Or the service is genuinely gone. Only the third case means anything is actually down; the first two are the network and the operator behaving normally.

What is an onion mirror?

A second address published by the same operator, and cryptographically a stranger to the first. Each onion address is its own key, so a mirror cannot vouch for another mirror; only a list of addresses signed with the operator's key can connect several addresses to one identity.

How long does an onion address work after it's retired?

Up to about three hours. A service's descriptor states its own lifetime, and operators set that field to 180 minutes, so a retired address can keep resolving for that long after the operator stops republishing it before it goes quiet for good.

Does a working onion address mean the site is genuine?

No. It means you reached whoever holds the private key matching that address, which is a real guarantee and a narrow one. It says nothing about whose key that is. Confirming identity is a separate step, done against a signature the operator publishes, not against whether a page loads.

↑ Top