DNS infrastructure
for the
decentralized web.
Subdomain routing. Full zone management. Custom TLDs on Handshake. ENS + IPFS resolution. White-label registrars. All from one API.
✓ myapp.xdns.wtf → live
✓ myapp.com → ns1.xdns.wtf delegated
✓ ipfs://QmXy... + 0x4a...f2
✓ .cool → you own this TLD on-chain
Five products. One platform.
Start with instant subdomain routing. Add full zone management, own a TLD, go decentralized — all from the same API key.
Subdomain Proxy
Instant routing under *.xdns.wtf. POST a slug + origin, get a live subdomain in under 1ms. No DNS writes, no propagation.
Read the docs →DNS Zones
Full zone management for any domain. Create and manage A, AAAA, CNAME, MX, TXT, SRV, NS, CAA records via API. DNSSEC included.
Explore zones →Custom TLDs
Own and operate your own top-level domain. Register on Handshake, manage nameservers, sell SLDs under your TLD programmatically.
Run a TLD →Decentralized DNS
ENS resolution, Handshake zones, IPFS/IPNS content linking. One API to resolve any decentralized name — .eth, .crypto, HNS TLDs, CIDs.
Go decentralized →Registrar Kit
White-label domain registration API. Availability check, register, renew, transfer. WHOIS privacy by default. Brandable as your own.
Build a registrar →One API. Every layer of DNS.
# Subdomain proxy: instant, no DNS config
POST /api/tenants { slug, target_origin }
# DNS zones: bring your own domain
POST /api/zones { domain: "myapp.com" }
# Custom TLD: own your namespace on-chain
POST /api/tlds { tld: "dev", chain: "handshake" }
# Decentralized: resolve any name
GET /api/resolve/myapp.ethAuthorization: Bearer $TOKEN
# Same token works across all xdns products
# Scoped permissions: proxy:write zones:read tlds:admin# Traditional: via Cloudflare edge (300+ PoPs)
myapp.xdns.wtf → origin (< 1ms)
records.myapp.com → Cloudflare authoritative DNS
# Decentralized: via ENS / HNS / IPFS
myapp.eth → content hash (IPFS CID)
cool.wtf → your zone on HNS blockchainEdge-native. Chain-aware.
┌─────────────────────────────────────┐
│ xdns platform API │
│ Cloudflare Workers edge │
└──────┬─────────┬────────┬───────────┘
│ │ │
┌────────────▼──┐ ┌───▼────┐ ┌▼──────────────┐
│ Cloudflare │ │ HNS │ │ Ethereum RPC │
│ DNS + D1 │ │ node │ │ (ENS resolver)│
└───────────────┘ └────────┘ └───────────────┘
zones · records TLDs .eth names
tenants · tlds on-chain content hashesOwn your namespace on-chain.
Handshake gives you uncensorable TLD ownership. ENS gives you human-readable blockchain addresses. IPFS gives you content-addressed hosting. xdns connects all three to traditional DNS resolution — so your decentralized names work everywhere, including legacy browsers.
Explore decentralized DNS →GET /api/resolve/vitalik.eth
{
"protocol": "ens",
"address": "0xd8dA6BF26964aF9D7...",
"contenthash": "ipfs://QmXy...",
"text": { "email": "vitalik@..." }
}
GET /api/resolve/cool.wtf
{
"protocol": "handshake",
"owner": "hs1q4...",
"ns": ["ns1.xdns.wtf", "ns2.xdns.wtf"]
}Start with a subdomain. Build a registrar.
Every xdns product works from the same API key. Start simple, go deep.