NoDNS

DNS records from Nostr events. No registrar lock-in. Self-sovereign domains.

LIVE & EXPERIMENTAL

What is NoDNS?

NoDNS is a protocol that resolves DNS records from Nostr events. Instead of registering domains through a traditional registrar and configuring DNS through a control panel, you publish cryptographically-signed events to Nostr relays. A NoDNS-compatible nameserver reads these events and serves them as standard DNS responses.

Your npub (Nostr public key) is your domain. No registration, no fees, no approval. Generate a keypair and publish your records.

Try It Now

This is a live record from a real kind 11111 event published on Nostr:

$ dig npub1ykal2phgzf6ljmql6l8khmf0ekf6ny0582r89m00j9vjt8qezhjqqpa3dl.nodns.shop A

;; ANSWER SECTION:
npub1ykal2...pa3dl.nodns.shop. 300 IN A 193.99.144.80

That record came from this Nostr user's kind 11111 event. They published their DNS records to Nostr relays. Our nameserver picked them up and serves them via standard DNS. Try it in your terminal.

How It Works

1. You publish a kind 11111 Nostr event with your DNS records:
   { "kind": 11111, "tags": [
       ["record", "A", "@", "193.99.144.80", "", ...],
       ["record", "CNAME", "www", "heise.de", "", ...]
     ] }

2. Our bot subscribes to Nostr relays and receives your event in seconds.

3. Bot sends a DDNS update to Knot DNS (authoritative nameserver).

4. Your domain resolves globally via standard DNS.

   npub1{yourkey}.nodns.shop  →  your IP address

No Registrar

Your npub is your domain. Publish an event, it resolves. No accounts, no billing, no lock-in.

Cryptographic Proof

Every record is signed with your Nostr keypair. Events are verifiable by anyone. No certificate authorities needed.

Standard DNS

Resolves via normal DNS. Works with every browser, every tool, every language. No special software needed on the client side.

Fast Propagation

Records propagate in ~3-5 seconds from Nostr event to global DNS resolution. TTL of 5 minutes; negative cache of 60 seconds.

Architecture

  Nostr Relays                   nodns-bot              Knot DNS
  ┌──────────────┐              ┌──────────┐           ┌──────────────┐
  │ relay.damus  │──WebSocket──▶│          │──DDNS────▶│              │─── Internet
  │ nostr.band   │─────────────▶│ validate │  UPDATE   │  nodns.shop  │
  │ nos.lol      │─────────────▶│ parse    │  (TSIG)   │  zone        │
  │ nostr.wine   │─────────────▶│ push     │           │  DNSSEC      │
  └──────────────┘              └──────────┘           └──────┬───────┘
                                                              │ NOTIFY
                                                              ▼
                                                       ┌──────────────┐
                                                       │ puck.nether  │
                                                       │ (secondary)  │
                                                       └──────────────┘

The bot does NOT run a DNS server. It's a bridge: Nostr events in, DDNS updates out. Knot DNS handles all DNS serving, DNSSEC signing, zone transfers, and NOTIFY to secondaries. It uses Read-Copy-Update (RCU) for lock-free zone updates — zero query interruption during changes.

The Bot (Coming Next)

The nodns-bot is a Go daemon that automates the entire pipeline. Currently updates are manual while we finalize the implementation.

What it does

Security

Protocol Spec

NoDNS uses kind 11111 Nostr events with a fixed tag format:

// Legacy format (11 elements, currently in use):
["record", "TYPE", "name", "rdata", "", "", "", "", "", "", "ttl"]

// Examples:
["record", "A",      "@",    "193.99.144.80", "", "", "", "", "", "", "3600"]
["record", "CNAME",  "www",  "example.com",   "", "", "", "", "", "", "3600"]
["record", "MX",     "@",    "10", "mail.example.com", "", "", "", "", "", "3600"]

// New format (5 elements, zone-file style):
["record", "A", "@", "3600", "193.99.144.80"]

The protocol also defines kind 30003 for TLS certificate distribution and kind 5 for record deletion. Full spec: relay.ngit.dev (repos: nodns-protocol-spec and no-dns).

Roadmap

Infrastructure

Primary DNS

ns1.nodns.shop
46.224.104.12
Knot DNS 3.3.4
Hetzner, Finland

Secondary DNS

puck.nether.net
204.42.254.5
Southfield, MI, USA
Free AXFR secondary