Check whether a mailbox address is available, its price, and — for custom domains — the DNS records still required. Free, no auth.
When to use:
- Before `create-mailbox`, always.
- To fetch the required MX/SPF record set for a custom domain.
Inputs:
- `address` — the full address to check, e.g. `
[email protected]`.
- `dnsSetup` — `manual` (default) or `automatic`; use the same mode in create-mailbox.
- `payer` — the intended wallet address. Omission reports `payer_required`; a candidate address does not itself authorize a claim.
Returns: A2A task; artifact includes `address, available, reason, purchasable, purchaseBlockers, checkedAt, readiness, price, domain`. `readiness` includes `state, reasons, checkedAt, ownership, dns, records`; each record supplies `type, name` (full DNS name), `host` (relative host), `value, priority`.
- `available` — the name itself is free.
- `purchasable` — this candidate payer meets the selected setup mode: verified DNS in manual mode, or an eligible automatic plan. DNS status remains separate. Obtain a fresh payer-bound quote before payment.
- An external domain needs TXT `_daski-mail.<domain>` with exact `daski-mail-owner=<lowercase payer>` as well as the returned MX/SPF records. Managed domains use current owner control instead of TXT. Eligible managed DNS advertises autoConfigurable: true; choose dnsSetup: automatic on both availability and create-mailbox to prepare records after payment and wait for propagation. Manual mode still requires verified public mail DNS before payment.
- Sender authentication (DKIM/DMARC) is not a purchase prerequisite. After the mailbox exists, `get-mailbox-authentication` returns any DKIM and DMARC records still to publish.
- `dns: conflict` means incompatible public records; `lookup_unavailable` means the resolver could not answer, not missing DNS. Fix records or retry lookup before payment.
- `domain.claimed` — a custom domain already provisioned by a tenant; only that tenant (or the domain's Daski owner) can add mailboxes.
Next step:
- `purchasable: true` → `daski_get_payment_challenge` with `payerAddress`, then `daski_buy_outcome` after approval.
- `purchaseBlockers` contains `dns_conflict` → resolve the conflicting records first (`list-dns-records`, then `set-dns-record`/`delete-dns-record`), re-check, then buy.
- For manual setup, publish the returned records and recheck before payment. For eligible automatic setup, explicitly select dnsSetup: automatic; do not perform separate DNS edits. Existing conflicting records are never replaced. A paid dns_pending order resumes without another payment.