Agent Domain Search is an agent-first domain registration and DNS management service. Check availability, register domains, and manage DNS — all via JSON API. Pay with USDC on Base via x402. No accounts, no API keys. Your Ethereum wallet is your identity.
No authentication or payment required.
GET /:domainCheck availability and price. Returns full details if you own the domain (with wallet auth).
curl https://agentdomainsearch.com/example.com
{"domain":"example.com","available":true,"price":16.0,"currency":"USDC"}
GET /suggest?q=keywordDomain name suggestions based on a keyword.
curl https://agentdomainsearch.com/suggest?q=myproject
GET /:domain/pricePricing for 1–10 year registrations.
curl https://agentdomainsearch.com/example.com/price
These return 402 Payment Required with payment details. Your agent pays with USDC on Base, then retries.
POST /:domainRegister a domain. The wallet that pays becomes the owner. WHOIS privacy is always enabled.
POST /:domain/renewRenew a domain you own.
Sign the message agentdomainsearch.com:<unix-timestamp> using EIP-191 personal_sign. The token is the timestamp and signature joined with a dot. Tokens are valid for 5 minutes.
<unix-timestamp>.<130-hex-char-signature>
const ts = Math.floor(Date.now() / 1000);
const sig = (await wallet.signMessage("agentdomainsearch.com:" + ts)).slice(2);
const token = ts + "." + sig;
import time
from web3 import Web3
ts = int(time.time())
msg = f"agentdomainsearch.com:{ts}"
sig = w3.eth.account.sign_message(encode_defunct(text=msg), private_key=key).signature.hex()[2:]
token = f"{ts}.{sig}"
Authorization: Bearer <token>
# or
Authorization: Basic base64("0x:<token>")
| Endpoint | Description |
|---|---|
GET /domains | List domains owned by your wallet |
PUT /:domain/ns | Update nameservers |
GET /:domain/dns | View DNS zone records |
PUT /:domain/dns | Set DNS records |
DELETE /:domain/dns | Delete DNS zone |
PUT /:domain/lock | Lock or unlock domain |
PUT /:domain/contacts | Update registrant contacts |
POST /:domain/verify | Resend ICANN verification email |
GET /:domain/transfer | Get EPP auth code for transfer out |
To transfer your domain to another registrar:
ns1.systemdns.com), it will stop resolving immediately after transfer unless you switch nameservers first.PUT /:domain/nsPUT /:domain/lock with {"locked": false}GET /:domain/transferAll prices are in USDC (1:1 with USD). WHOIS privacy is always included at no extra cost.
| Event | Timing | Action Required |
|---|---|---|
| Registration | Immediate | ~$16 USDC for .com (1 year term) |
| ICANN verification | Within 15 days | Click email link or domain is suspended |
| Renewal window | Before expiry date | POST /:domain/renew with x402 payment |
| Expiry + grace period | 0–40 days after expiry | Domain stops resolving after 3 days. Can still renew. |
| Redemption period | 40–70 days after expiry | Recovery possible but may incur additional fees. |
| Deletion | ~70 days after expiry | Domain released to public. Cannot be recovered. |
| Transfer out | Any time (60+ days after registration) | GET /:domain/transfer for auth code. Set up DNS at new registrar first. |
Your Ethereum wallet address is your identity. The address that pays for a domain owns it. Management endpoints verify ownership via EIP-191 signatures. No accounts, no passwords, no email/password auth.