descriptionRegister a new domain. On success the payer wallet controls the managed domain asset and a wholesale registrar handles ICANN compliance.
Access: paid orders and owner-only asset operations are routed through the Daski gateway. The gateway obtains a short-lived wallet signature bound to the exact provider, action, asset, and request; the provider rejects direct anonymous access.
When to use:
- The user wants a new domain and `check-availability` returned `available: true`.
- The user wants to register for multiple years up front (1–10 year term).
When NOT to use:
- The user already owns the domain at another registrar — transfer-in is outside this service's supported operations.
- The user is renewing an existing Daski-registered domain — use `renew-domain` instead.
- The domain is premium — premium domains without fixed retail prices are rejected. `check-availability` flags these.
Inputs:
- `domain` — fully qualified domain name (e.g. `example.com`).
- `term` (optional) — 1 to 10 years, default 1.
- `whoisPrivacy` (optional) — boolean; request registrar WHOIS privacy.
- WHOIS registrant fields (REQUIRED BY ICANN, posted to the PUBLIC WHOIS database):
- `registrantName`
- `registrantEmail` — monitored inbox; see EMAIL VERIFICATION below.
- `registrantAddress`, `registrantCity`, `registrantPostalCode`
- `registrantState` — the state/province code exactly as the registrar
expects it: the part AFTER the country prefix of the ISO-3166-2 code
(`CO` for Colorado, `ON` for Ontario, `BY` for Bavaria — never
`US-CO`). If the country genuinely has no subdivision, re-use the city
name — never send an empty string, and never invent a region your
Operator did not give you; ask instead.
- `registrantCountry` — ISO-3166 alpha-2 (e.g. `US`, not `USA`). Any country is accepted; there is no registrant-nationality restriction.
- `registrantPhone` — E.164 with no separators (e.g. `+15555550100`, not `+1.555.555.0100`).
- `registrantOrganization` (optional) — the organization's LEGAL NAME when the
registrant of record is a company; it becomes the public WHOIS Organization.
`registrantName` then stays the natural-person contact. NEVER concatenate
person + company into `registrantName`.
COLLECT FIRST: gather ALL registrant fields from your Operator in ONE message before
starting the purchase — they are ICANN-mandated and you will be blocked without them.
Ask whether the registrant of record is a person or an organization (that decides
whether `registrantOrganization` is needed).
Do not invent values (states/provinces included); ask. If a field is genuinely not
applicable (e.g. no subdivision exists), ask how to fill it — for the state field the
registry convention is to re-use the city name, never a blank. Ask about WHOIS privacy
in the same message (see below).
WHOIS PRIVACY: pass `whoisPrivacy: true` to request registrar WHOIS privacy (free
where the TLD supports it). The `registration_details` artifact reports the outcome:
`whoisPrivacy: "enabled" | "unavailable" | "not_requested"` — "unavailable" means the
TLD doesn't support privacy and the registrant data is on public WHOIS as-is; relay
that to your Operator.
EMAIL VERIFICATION: the registry sends a verification link to `registrantEmail`. It MUST be confirmed within 15 days or the domain is suspended until verified — `registration_details.verificationDeadlineDays` carries that deadline. Nothing here observes or receipts the send, so no arrival window is available: do NOT tell your Operator when the email will land. Renewal notices land at the same inbox at 30/15/7/1 days before expiry. Role accounts (`postmaster@`, `noreply@`, etc.) usually fail verification.
Supported TLDs: `.com`, `.net`, `.org`, `.io`, `.ai`, `.xyz`, plus most ICANN gTLDs.
Pricing: variable USDC, varies by TLD and term. Use `get-pricing` for a preview, or read `quoteNotes` on the `daski_buy_service` response.
Returns: A2A task; median fulfillment under 60 seconds. On `state: 'completed'` the artifact is `{ domain, orderId, expiresAt, registrar, nameservers[] }`. Default nameservers are the registrar's resolvers — change them with `set-dns-record` using `recordType: 'NS'`.
Next step:
- Confirm the verification email within 15 days.
- `set-dns-record` to publish DNS records through a wallet-authorized asset action.
- `get-domain-info` to verify on-chain state.
Provider documentation