PGP link verification for darknet markets
How to verify that a .onion address is real — not a phishing clone — using PGP cryptographic signatures.

Why this matters more than anything else
Phishing is how most people lose money on darknet markets. Not law enforcement, not exit scams — phishing. Someone finds a market link on a random clearnet site, pastes it into Tor Browser, logs in, and enters their credentials into a perfect copy of the real site. The attacker now has their username, password, and any cryptocurrency sent to the fake deposit address.
PGP verification eliminates this problem. It works on a simple principle: the market operators publish their .onion addresses inside a message signed with their private PGP key. If you verify that signature against their known public key and the math checks out, the addresses are authentic. An attacker would need to steal the market's private key to forge this — and if they had the private key, they'd have access to the entire market.
This is not trust-based security. You are not trusting our site, or any site. You are verifying a cryptographic signature that is either mathematically valid or it isn't. There's no middle ground.
What you need before starting
PGP verification requires a PGP tool and two pieces of information from the market:
gpg is already installed on most distributions.-----BEGIN PGP PUBLIC KEY BLOCK-----. Markets publish this on their login page, their Dread profile, or both. You should have obtained this key from a source you verified before you needed it — not while you're actively worried about a phishing link.-----BEGIN PGP SIGNED MESSAGE-----.Step-by-step verification
The process is the same regardless of your operating system. The interface differs between GUI tools (Kleopatra, GPG Suite) and the command line, but the underlying operation is identical: import the public key, verify the signed message, read the result.
gpg --import market-key.asc. After import, note the key fingerprint — a 40-character hexadecimal string that uniquely identifies this key.-----BEGIN PGP SIGNED MESSAGE----- through -----END PGP SIGNATURE-----. Even a single character missing or altered will cause the verification to fail.gpg --verify signed-mirrors.txt.gpg: Good signature from "MarketName Admin" gpg: Signature made 2026-04-28 using RSA key ID ABCDEF12
Bad result
gpg: BAD signature from "MarketName Admin"
If you see BAD signature, stop. The addresses in that message have been tampered with. Do not use them. Do not connect to them. Find the original signed message from a different, trusted source and try again.
What "Good signature" actually proves
A valid PGP signature proves exactly one thing: the message was created by someone who holds the private key corresponding to the public key you imported. Nothing more.
It does not prove that the person behind that key is trustworthy, honest, or running a legitimate operation. It proves authorship. If you imported the key from the market's official login page and a signed message verifies against that key, the addresses in the message are the same addresses the market operators are using. Whether you trust those operators is a separate decision.
This distinction matters. PGP verification protects you against phishing — someone impersonating the market. It does not protect you against the market itself behaving badly (exit scams, selective scamming, etc.). Those are different problems.
Handling key conflicts and multiple keys
Sometimes you'll encounter multiple PGP keys claiming to be from the same market. This happens when a market rotates its PGP key (a normal security practice), or when a phishing site publishes a fake key.
The defense is the fingerprint. If you verified the market's fingerprint from multiple independent sources when you first imported the key, a new key with a different fingerprint should not automatically be trusted. Some markets sign their new key with the old key to create a chain of trust — if you verify that the new key is signed by the old key, and you trust the old key, the new key is legitimate.
If a market simply publishes a new key without cross-signing it from the old one, and you can't verify the new fingerprint through independent channels, treat those addresses as unverified until you can confirm them through a separate trusted source.
Common mistakes in PGP verification
Command-line reference
For users comfortable with the terminal, here are the raw commands. These work on Linux, macOS (with GPG Suite installed), and Windows (through Gpg4win's command prompt).
gpg --import market-publickey.asc # Check the fingerprint after import: gpg --fingerprint "MarketName"
# Save the signed message to a file first: gpg --verify signed-mirrors.txt # Expected output for valid signatures: # gpg: Good signature from "MarketName Admin" # Expected output for invalid signatures: # gpg: BAD signature from "MarketName Admin"
# View all imported keys: gpg --list-keys # View a specific key with fingerprint: gpg --fingerprint "MarketName" # Delete a key you no longer trust: gpg --delete-keys "MarketName"
After verification
Once you see "Good signature" and you've confirmed the key fingerprint through at least one independent source, the .onion addresses inside that signed message are authentic. Copy them, open Tor Browser, and paste one into the address bar.
Bookmark the verified address inside Tor Browser — this prevents you from needing to re-verify every time. If a market rotates its addresses, repeat this verification process with the new signed message before using the new links.
For verified .onion links to all active markets with PGP-signed mirror blocks, see the market directory. Each market page includes the full signed message for independent verification.
PGP verification questions
gpg --list-keys to see which keys you have. If the market's key isn't listed, import it first, then verify again.