# x402nic agent quickstart

Canonical page: https://x402nic.com/for-agents/
Registration skill: https://dnsskills.md/register-domain/SKILL.md
OpenAPI: https://dnsskills.md/register-domain/openapi.yaml
Inventory: https://x402nic.com/tlds.json
Markdown inventory: https://x402nic.com/tlds/index.md
Inventory updated: 2026-11-04

## Scope
Use the storefront inventory: only .ai, .io and .to are country-code exceptions. This static site describes the service. Execute the transaction at the existing DomainHelp API; do not POST to x402nic pages.

## 1. Availability and quote
Domain Availability is a separately paid x402 lookup product: https://app.domainhelp.com/api/v1/domain-availability
Availability documentation: https://dnsskills.md/domain-availability.md
For a registration quote and requirements, query the full domain (replace YOUR_DOMAIN):

```sh
curl --get https://app.domainhelp.com/api/v1/register-domain/requirements \
  --data-urlencode "domain=YOUR_DOMAIN"
```

Read offer, expiry, term_years, total, payment requirements, registrant_fields, tld_fields, email_validation and agreement_version. No current offer means stop or retry as documented. Do not cache a price as an evergreen TLD price.

## 2. Obtain authorization and collect real contacts
Show the full total and term, explain that renewals use the easyDNS account, obtain human spending approval and current agreement acceptance. Use the end user’s accurate registrant details; the wallet is not their registrant identity.
Required contact fields in the published schema: first_name, last_name, address1, city, state, country, postal_code, phone, email. Optional contact roles default to the registrant. Use an existing reachable email address, not an address on the domain being purchased.
Follow the returned email-validation mode. SMTP mode runs a recipient-acceptance check during preparation without sending a message; it does not prove inbox ownership or guarantee delivery. Use challenge/code verification only if the current requirements advertise it. Supply extra registry fields exactly as advertised.

## 3. Prepare one immutable order
Generate a cryptographically random 32-byte order_token encoded as 64 hex characters. Keep it private.
POST https://app.domainhelp.com/api/v1/registration-orders with a unique 16–200-character Idempotency-Key header and the exact published request schema. Reuse that key and input for preparation retries.
Preparation validates contacts, quote and agreement; it has not collected payment or registered a domain.

## 4. Pay and register on the original order
POST https://app.domainhelp.com/api/v1/register-domain with Authorization: Bearer ORDER_TOKEN. The JSON body contains only {"order_id":"PREPARED_ORDER_ID"}.
Use a standard x402 SDK for PAYMENT-REQUIRED / PAYMENT-SIGNATURE. The payer must match the prepared order. Retain PAYMENT-RESPONSE when returned. Settlement precedes the registrar write.
Discovery snapshot: x402 v2 exact, Base mainnet eip155:8453, USDC asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. The current challenge is authoritative.
Facilitator: verification is service-managed. Exact deployed facilitator configuration is TBD — requires operator confirmation; use the canonical skill and returned challenge rather than configuring a new payment backend.

## 5. Poll status, preserve recovery, confirm delivery
GET the returned status_url with the original bearer order token. The documented status route is https://app.domainhelp.com/api/v1/registration-orders/{id}.
Payment, registration and handoff have separate status fields. HTTP 202 or outcome_unknown is not proof of failure. Poll/reconcile the same order; never create or pay for a second order to recover it.
After payment_status=settled and registration_status=registered, durably save recovery_key with the domain, order_id and receipt. Make it retrievable by the customer independently of their email. Never put it in URLs, public logs or shared transcripts. The original authenticated status URL returns the same recovery key if the response was lost.
A registered domain with handoff pending is still awaiting customer easyDNS account delivery. Normal easyDNS welcome communications are part of provisioning; check handoff completion before claiming delivery.

## Confirm the registrant contact email after registration
For a generic TLD, a new or unverified registrant contact will receive a separate verification email under ICANN’s Whois Accuracy Program. The registrant must follow the individual link in that email and confirm their contact information before the stated deadline. Failure to complete verification can result in domain suspension.

The confirmation page is hosted at `https://approve.domainadmin.com` (plain text; use the individual link in the actual email). This is separate from the SMTP/code check during order preparation and from welcome/account-delivery emails. Payment, registration and handoff status do not prove contact verification is complete. Tell the registrant to watch their inbox and complete this step; do not report it as verified without confirmation. Already verified contacts may not require another check; ccTLD rules can differ.

Anonymized example confirmation page: https://x402nic.com/assets/verify-domain-example.7932f2864c38.png
ICANN requirements: https://www.icann.org/resources/pages/registration-data-accuracy-obligations-gdpr-2021-06-14-en


## Errors and limits
One domain per order. Standard API limits apply; email checks are rate limited. Respect 429 responses. 409 may indicate stale quotes, duplicate domain claims or payment reuse; 422 indicates validation/policy issues; 503 indicates an unavailable service. Inspect the canonical schema and response. Do not retry a purchase blindly.

## DNS management after registration
easyDNS API setup: https://kb.easydns.com/knowledge/api-access/
Official easyDNS MCP: https://github.com/easydns/easydns-mcp
MCP management is separate from registration; it does not expose the purchase flow. Follow its official configuration and keep credentials in a private secret store. Use scoped production access only when authorized.

## Renewals, support and references
Automated recurring x402 renewal is planned, not available in this release. Renew through the easyDNS customer account before expiry.
Renewal documentation: https://kb.easydns.com/knowledge/invoice-payments-renewals/
easyDNS login: https://cp.easydns.com/login.php
Support and recovery: https://easydns.com/contact-us/
Terms/refunds: https://easydns.com/terms-of-service/
GitHub skills: https://github.com/easydns/dns-agent-skills
Existing service metadata: https://app.domainhelp.com/.well-known/x402

llms.txt is an optional convenience document, not a guaranteed discovery standard. No x402 DNS discovery records or new well-known paths are asserted by this site.
