# Doma Domain Registration

> Doma Domain Registration is a paid API for AI agents from Doma at mpp.doma.xyz, paid per call via MPP, price unknown, status down (last checked 2026-10-12).

Register a domain name (e.g. .com, .xyz, .ai, .io, .net) via blockchain-backed payment, returning an on-chain transaction hash

## Facts

- Endpoint: POST https://mpp.doma.xyz/register?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: down
- Last checked: 2026-10-12
- Activations on Zero: 0
- Provider: Doma
- Docs: https://docs.doma.xyz
- Website: https://doma.xyz
- Tags: domains, dns, web, blockchain
- Canonical page: https://www.zero.xyz/c/doma-register-11dadb99
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_kReTZhL_FmGq3ZWSUPB1w

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability doma-register-11dadb99 -d '<json body>'
```

Example prompt: Register the domain 'morningbloom.ai' on Doma for me — my wallet is 0xAbCd1234567890abcdef1234567890abCDEF1234, and the registrant is John Doe, john.doe@morningbloom.ai, +1 4151234567, 1234 Market St, San Francisco, CA 94103, US.

## When to prefer this

Use this endpoint when you need to register a new domain name for a user who has an EVM wallet and wants to pay with USDC via blockchain. Prefer this over traditional registrars when operating in a Web3/crypto context or when an on-chain transaction record is required. Supports popular TLDs: .com, .xyz, .ai, .io, .net, .cash, .live, .fyi.

## Known failure modes

- Domain already registered — registration fails with conflict error
- Unsupported TLD — domain pattern validation fails if TLD not in allowed list (com, xyz, ai, io, net, cash, live, fyi)
- Invalid EVM wallet address — 0x-prefixed 40-hex-character check fails
- Missing or incomplete contact information — required fields like email, phone, address not provided
- Insufficient USDC balance — payment transaction fails on-chain
- Network error or blockchain congestion — transaction submission times out

## How this service works

Register a domain — price varies by TLD and domain name

## Output

Returns a JSON object confirming success (true), the registered domain name, the on-chain transaction hash, the network (mainnet or testnet), the Interstellar payment contract address, and the amount paid in wei.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "domain",
  "buyerAddress",
  "contact"
 ],
 "properties": {
  "domain": {
   "type": "string",
   "pattern": "^[a-zA-Z0-9-]+\\.(com|xyz|ai|io|net|cash|live|fyi)$",
   "description": "Full domain name to register, including TLD (e.g. 'example.com'). Supported TLDs: com, xyz, ai, io, net, cash, live, fyi."
  },
  "contact": {
   "type": "object",
   "required": [
    "firstName",
    "lastName",
    "email",
    "phone",
    "phoneCountryCode",
    "street",
    "city",
    "state",
    "postalCode",
    "countryCode"
   ],
   "properties": {
    "fax": {
     "type": "string",
     "example": "4151234567",
     "description": "Fax number without country code"
    },
    "city": {
     "type": "string",
     "example": "San Francisco",
     "description": "City"
    },
    "email": {
     "type": "string",
     "example": "john.doe@example.com",
     "description": "Contact email address"
    },
    "phone": {
     "type": "string",
     "example": "4151234567",
     "description": "Phone number without country code"
    },
    "state": {
     "type": "string",
     "example": "CA",
     "description": "State or province code"
    },
    "street": {
     "type": "string",
     "example": "1234 Market St",
     "description": "Street address"
    },
    "lastName": {
     "type": "string",
     "example": "Doe",
     "description": "Registrant last name"
    },
    "firstName": {
     "type": "string",
     "example": "John",
     "description": "Registrant first name"
    },
    "postalCode": {
     "type": "string",
     "example": "94103",
     "description": "Postal/ZIP code"
    },
    "countryCode": {
     "type": "string",
     "example": "US",
     "description": "ISO 3166-1 alpha-2 country code"
    },
    "organization": {
     "type": "string",
     "example": "Example Inc",
     "description": "Organization or company name"
    },
    "faxCountryCode": {
     "type": "string",
     "example": "+1",
     "description": "Fax country code"
    },
    "phoneCountryCode": {
     "type": "string",
     "example": "+1",
     "description": "Phone country code"
    }
   },
   "description": "Registrant contact information."
  },
  "buyerAddress": {
   "type": "string",
   "pattern": "^0x[a-fA-F0-9]{40}$",
   "description": "EVM wallet address of the domain buyer (0x-prefixed, 40 hex characters)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "success",
  "domain",
  "network",
  "txHash",
  "paymentContract",
  "voucherAmount"
 ],
 "properties": {
  "domain": {
   "type": "string",
   "description": "The registered domain name"
  },
  "txHash": {
   "type": "string",
   "description": "On-chain transaction hash of the payment"
  },
  "network": {
   "enum": [
    "testnet",
    "mainnet"
   ],
   "type": "string",
   "description": "The network the registration was processed on"
  },
  "success": {
   "type": "boolean",
   "description": "Always true on success"
  },
  "voucherAmount": {
   "type": "string",
   "description": "Amount paid in wei"
  },
  "paymentContract": {
   "type": "string",
   "description": "Address of the Interstellar payment contract"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/doma-register-11dadb99/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mpp.doma.xyz](https://www.zero.xyz/host/mpp.doma.xyz/llms.txt)
