DYNAMIC DNS SERVICE // ECASH PAYMENTS
1. SELECT "REGISTER NEW DOMAIN" MODE
2. PROVIDE CASHU ECASH TOKEN (ANY AMOUNT FOR TESTING)
3. OPTIONALLY SET CUSTOM PASSWORD
4. CONFIGURE EXPIRY PERIOD (1-365 DAYS)
1. SELECT "UPDATE EXISTING DOMAIN" MODE
2. AUTHENTICATE WITH PASSWORD OR ORIGINAL TOKEN
3. NO ADDITIONAL PAYMENT REQUIRED
• HTTP GET/POST requests to /nic/update
endpoint
• Standard DynDNS response codes (good, nochg, badauth, etc.)
• Compatible with router firmware and DynDNS clients
• User-Agent validation and rate limiting for abuse prevention
• IPv6 dual-stack support (myipv6 parameter or comma-separated)
• Source IP fallback when myip parameter omitted
• Multiple record types: A (IPv4), AAAA (IPv6), TXT (text records)
• ❌ CNAME records NOT supported (DNS semantic violation)
• RFC 2136 Dynamic DNS Updates (roadmap) - RFC 2136
• Anonymous payments via Cashu ecash tokens
• 60-second TTL for rapid IP propagation
API ENDPOINT: GET /nic/update
EXAMPLE: hostname.dns4sats.xyz
→ YOUR_IP
Service: Custom DynDNS
Server: staging.dns4sats.xyz
Path: /nic/update
Username: (leave empty)
Password: Your domain password
REGISTER A RECORD (IPv4):
curl "https://staging.dns4sats.xyz/nic/update?hostname=elliot.dns4sats.xyz&myip=203.0.113.42&token=cashuAeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJrZXlzZXQiOiIwMmI0OTcyNjQxNGM0YzNhIn0.xyz123..."&password=my-secret-password&expiry=90"
REGISTER AAAA RECORD (IPv6):
curl "https://staging.dns4sats.xyz/nic/update?hostname=darlene.dns4sats.xyz&type=AAAA&myip=2001:db8::1&token=cashuAbc123..."&password=my-password"
REGISTER TXT RECORD:
curl "https://staging.dns4sats.xyz/nic/update?hostname=verify.dns4sats.xyz&type=TXT&myip=v=spf1+include:_spf.google.com+~all&token=cashuDef456..."
REGISTER CNAME RECORD:
curl "https://staging.dns4sats.xyz/nic/update?hostname=alias.dns4sats.xyz&type=CNAME&myip=target.example.com&token=cashuGhi789..."
UPDATE EXISTING DOMAIN:
curl "https://staging.dns4sats.xyz/nic/update?hostname=elliot.dns4sats.xyz&myip=203.0.113.99&password=my-secret-password"
📋 RFC 2136 - Dynamic Updates in DNS
📋 RFC 1035 - Domain Names Implementation
📋 RFC 2845 - Secret Key Transaction Authentication
🙏 Built with inspiration from:
• LNbits Subdomainsand - Lightning-paid subdomain service
• Cashu TypeScript - Ecash protocol implementation
Thank you to these open source projects that made dns4sats possible!
⚠️ EXPERIMENTAL PROTOCOL - USE AT YOUR OWN RISK
⚠️ NO SERVICE LEVEL GUARANTEES
⚠️ HACKATHON DEMONSTRATION ONLY