# register-domain

Register a new domain through the wholesale registrar. Variable-priced — call `get-pricing` or `/quote` first.

## Required fields

- `domain` — e.g., `example.xyz`. Lowercase letters, digits, hyphens, dots.
- `registrantName` — the natural-person contact's full legal name. When the
  registrant of record is a company, this stays the human contact — put the
  company in `registrantOrganization`, never concatenated into this field.
- `registrantEmail` — valid email address you monitor. The registrar sends verification links, required-action notices and renewal reminders directly to this inbox; Daski and the provider may also use it for service-related communication. Explain this to the user before submitting their email. See the verification deadline below.
- `registrantAddress`, `registrantCity`, `registrantState`, `registrantPostalCode`.
- `registrantCountry` — ISO-3166 alpha-2 (e.g., `US`, not `USA`).
- `registrantPhone` — E.164 with no separators (`+15555550100`, not `+1.555.555.0100`).

## Optional fields

- `term` — integer 1–10. Default 1.
- `registrantOrganization` — the organization's legal name when the registrant
  of record is a company. Becomes the public WHOIS Organization (registrar
  contact `companyName`). Omit for personal registrations; when present it
  must be non-empty.

## Pre-execute review

A pre-execute LLM hook checks for trademark proximity, abused-TLD risk, and country/phone-prefix mismatches. The hook can `proceed`, `reject`, or `escalate` to a human reviewer in the admin UI. The hook does NOT consult sanctions or threat-intel lists — those would require a real lookup integration, not an LLM judgment call.

## Output

- Artifact `registration_details`: `{ domain, registrar, nameservers, expiresAt, orderId }`.
- Asset row of type `domain` keyed on `domain`. Subsequent ownership-gated skills can run.

## Verification (ICANN)

`registrantEmail` is the WHOIS contact; the wholesale registrar sends to it directly. Buyer agents must use a real, monitored inbox — role accounts (postmaster@, noreply@) typically fail. Two emails to expect:

- **Verification within 15 days.** Confirm the link the wholesale registrar sends or the domain is suspended (DNS stops resolving) until verified.
- **Renewal notices** at 30/15/7/1 days before expiry, ICANN-mandated.

We don't relay these — the wholesale registrar sends them as the sponsoring registrar. The agent's email handler is the source of truth.

## Failure modes

- `domain_unavailable`: terminal. Buyer must pick a different domain.
- `no_quote`: premium TLD without fixed retail price. Quote rejects — no payment moves.
- Format errors on `registrantPhone` / `registrantCountry`: the task fails terminally. Correct the field before making a new purchase.
- **Async registry rejection** (rare): a TLD registry can reject a create after the wholesale registrar has accepted it — trademark hold, IDN policy, late premium reclassification. The registrar emails the registrant directly. **Buyer recovery:** email this provider's `support` address (advertised on the AgentCard's `support.email`) referencing the original `paymentId`. Launch payments are not automatically reversed.
