An address tied to your key. No registrar. No authority. Nothing to seize.
PKDNS is a naming system where your address is derived from a cryptographic key. There is no registry to contact, no domain to register, and no authority that can take it down. It runs over the same distributed network that BitTorrent has operated reliably for over 20 years.
Every domain name on the internet has an owner who can be pressured. A registrar who can be seized. A government who can issue a takedown. The kill switch still exists — it is just held by a different hand.
| Domain | What it was | Seized by | Year | Status |
|---|---|---|---|---|
| sci-hub.org | Academic paper repository | US & UK court orders | 2021 | ☠ Seized |
| libgen.org | Book & paper library | US court order | 2015 | ☠ Seized |
| z-lib.org | Book library | US Dept. of Justice | 2022 | ☠ Seized |
| tornadocash.eth | Privacy protocol frontend | OFAC sanctions | 2022 | ☠ Seized |
| kat.cr | Torrent index | US Dept. of Justice | 2016 | ☠ Seized |
| megaupload.com | File sharing platform | FBI / DOJ | 2012 | ☠ Seized |
In 2015, Protocol Labs launched IPFS with the right idea: address content by what it is, not where it is. Brave, Opera, and Cloudflare all shipped IPFS support. Protocol Labs raised hundreds of millions.
But IPFS built its own DHT from scratch — and that DHT never matched the scale or reliability of the Mainline DHT BitTorrent already operated. Content was frequently unavailable. Resolution was slow. The naming problem was never solved.
Most IPFS access today goes through Cloudflare's gateway. The decentralised web, routed through a centralised company. Again.
BitTorrent's distributed hash table goes live. Designed for scale from day one.
New DHT, new network, new protocol. Builds in isolation from existing infrastructure.
Cloudflare steps in to make IPFS usable. Centralisation creeps back in.
IPFS gateways remove content under legal pressure. The failure point is confirmed.
25M+ nodes. No company. No authority. No seizable domain. Still works.
PKDNS addresses are derived from your public key — not a registrar, not a company. Records are published directly to Mainline DHT, the same network BitTorrent has run on since 2005: 25 million nodes, no single operator, nothing to seize.
No registration. No renewal. No permission required. Written in Rust, runs on a Raspberry Pi, drops in alongside Pi-hole in under 10 minutes.
| Traditional DNS | IPFS | PKDNS | |
|---|---|---|---|
| Address tied to | Domain registrar | Content hash | Public key |
| Can be seized | Yes | Gateway can be | No |
| Infrastructure | Centralised | Custom DHT (fragile) | Mainline DHT (25M+ nodes) |
| Reliable in practice | Yes | Often not | Yes |
| Zero config to use | Yes | No | Yes |
| Running since | 1985 | 2015 | Built on DHT from 2005 |
| Central authority | ICANN / Registrars | Protocol Labs / Gateways | None |
No install needed. Point your DNS to our public resolver and resolve a PKDNS address in 30 seconds.
STEP 1 — SET YOUR DNS
Point your device or router's DNS to our public resolver:
46.225.159.225
STEP 2 — RESOLVE A PKDNS ADDRESS
Then run this in your terminal:
dig pk:cqwmibxsfx33fgs4ix1kqhuapuxbty9t33jsk5o4nzwzy9kqhuro
It resolves to noregistry.com — no registrar involved.
Training wheels, not the destination. The public resolver is a centralised point — it can be taken down. That contradicts everything this project stands for. Use it to experience PKDNS in 30 seconds, then run your own. That's the whole point.
Two ways to install. Pick one.
Downloads and installs the pkdns CLI to ~/.pkdns/bin and adds it to your PATH.
curl -fsSL https://raw.githubusercontent.com/thisispav/no-registry/main/packages/cli/install.sh | sh
Then open a new terminal (or run source ~/.zshrc) so pkdns is on your PATH.
pkdns install
pkdns init
pkdns start pkdns test
No install step. Use bunx (Bun) or npx (Node) to run pkdns-cli directly.
bunx pkdns-cli --help
npx pkdns-cli --help
Replace pkdns with bunx pkdns-cli in every command below.
bunx pkdns-cli install
bunx pkdns-cli init
bunx pkdns-cli start bunx pkdns-cli test
Once your resolver is running, here is what becomes possible.
Resolve names tied to cryptographic keys. No ICANN. No court order applies. No registrar to pressure.
Reach Pubky applications and homeservers via their public key address. No gateway required.
Every resolver you run is another node participating in the DHT. More installs means a more resilient network for everyone.
Build applications where the endpoint is the key — payments, identity, services. No registrar in the dependency chain.
Here is the standard playbook for removing a website. Here is why none of it works on a PKDNS address.
See PKDNS in action. A real application where every address is a public key — no registrar, no authority.
Source code, issues, and development. Start here.
The protocol spec for Public Key Addressable Resource Records.
The core Rust library that powers PKDNS and the Pubky ecosystem.