Conway Domains Skill
You have access to Conway Domains via MCP tools prefixed with mcp__conway__. Use them to search for domains, register them with x402 cryptocurrency payments, manage DNS records, and configure domain settings.
Core Concepts
- x402 payment: Domains are purchased using USDC cryptocurrency via the HTTP 402 payment protocol. The MCP tools handle payment automatically from your wallet.
- Wallet: An x402 wallet on Base (EVM) that holds USDC for domain purchases. Check balance with
wallet_info. - Domain tools:
domain_*tools interact with the Conway Domains registrar API. - DNS tools:
domain_dns_*tools manage DNS records for your registered domains.
Workflows
Search for Domains
Use domain_search to find available domains by keyword:
domain_search(query="myproject", tlds="com,io,ai,dev")
Returns availability status and pricing (registration + renewal) for each TLD.
For exact domain checks, use domain_check:
domain_check(domains="myproject.com,myproject.io,myproject.ai")
Check Pricing
Get pricing for specific TLDs before purchasing:
domain_pricing(tlds="com,io,ai,xyz,dev")
Returns registration, renewal, and transfer costs per TLD.
Register a Domain
- Check wallet balance:
wallet_info()— ensure you have enough USDC on Base. - Search availability:
domain_search(query="mydomain")ordomain_check(domains="mydomain.com"). - Register:
domain_register(domain="mydomain.com", years=1, privacy=true).
The domain_register tool handles x402 payment automatically. WHOIS privacy is enabled by default.
wallet_info() # Check balance first
domain_search(query="coolproject") # Find available options
domain_register(domain="coolproject.dev", years=1, privacy=true) # Register
Renew a Domain
domain_renew(domain="mydomain.com", years=1)
Payment is handled automatically via x402. Check your wallet balance first if unsure.
Manage DNS Records
List records:
domain_dns_list(domain="mydomain.com")
Add a record:
domain_dns_add(domain="mydomain.com", type="A", host="@", value="1.2.3.4", ttl=3600)
domain_dns_add(domain="mydomain.com", type="CNAME", host="www", value="mydomain.com", ttl=3600)
domain_dns_add(domain="mydomain.com", type="MX", host="@", value="mail.example.com", ttl=3600, distance=10)
domain_dns_add(domain="mydomain.com", type="TXT", host="@", value="v=spf1 include:_spf.google.com ~all")
Supported record types: A, AAAA, CNAME, MX, TXT, SRV, CAA, NS.
Update a record (use record_id from domain_dns_list):
domain_dns_update(domain="mydomain.com", record_id="abc123", value="5.6.7.8")
Delete a record:
domain_dns_delete(domain="mydomain.com", record_id="abc123")
Configure Domain Settings
WHOIS privacy:
domain_privacy(domain="mydomain.com", enabled=true)
Custom nameservers:
domain_nameservers(domain="mydomain.com", nameservers=["ns1.example.com", "ns2.example.com"])
Point a Domain to a Conway Cloud Sandbox
Common pattern — register a domain and point it to a running sandbox:
- Register:
domain_register(domain="myapp.dev") - Get sandbox URL: use
sandbox_get_urlorsandbox_expose_portto get the sandbox's public URL. - Add DNS:
domain_dns_add(domain="myapp.dev", type="CNAME", host="@", value="{sandbox-url}")
List & Inspect Your Domains
domain_list() # List all your registered domains
domain_info(domain="mydomain.com") # Get details: status, expiry, nameservers, privacy
Wallet & Payments
- Check balance:
wallet_info(network="eip155:8453")— wallet address and USDC balance on Base. - Supported networks:
wallet_networks()— list all supported payment networks. - Discover endpoints:
x402_discover(url="https://conway.domains")— find available x402 API endpoints. - Check payment requirements:
x402_check(url="https://api.conway.domains/domains/register")— see cost before paying. - Manual fetch:
x402_fetch(url, method, headers, body)— call any x402-protected endpoint with auto-payment.
MCP Tools Reference
| Tool | Description |
|---|---|
domain_search | Search available domains by keyword (query, tlds) |
domain_check | Check availability of exact domain names (domains) |
domain_pricing | Get TLD pricing (tlds) |
domain_list | List all your registered domains |
domain_info | Get domain details (domain) |
domain_register | Register a domain with x402 payment (domain, years, privacy) |
domain_renew | Renew a domain with x402 payment (domain, years) |
domain_privacy | Toggle WHOIS privacy (domain, enabled) |
domain_nameservers | Update nameservers (domain, nameservers) |
domain_dns_list | List DNS records (domain) |
domain_dns_add | Add DNS record (domain, type, host, value, ttl, distance) |
domain_dns_update | Update DNS record (domain, record_id, host, value, ttl) |
domain_dns_delete | Delete DNS record (domain, record_id) |
wallet_info | Get wallet address and USDC balance (network) |
wallet_networks | List supported payment networks |
x402_discover | Discover x402 endpoints for a URL |
x402_check | Check if URL requires x402 payment |
x402_fetch | Fetch URL with automatic x402 payment |
Troubleshooting
Registration fails — insufficient funds
- Check balance:
wallet_info(). - Check domain price:
domain_pricing(tlds="com")ordomain_check(domains="example.com"). - Deposit USDC to your wallet address on Base network. The wallet address is shown in
wallet_info()output.
Domain not resolving after DNS change
- DNS propagation takes time (minutes to hours depending on TTL).
- Verify records are set:
domain_dns_list(domain="mydomain.com"). - Check the TTL value — lower TTL means faster propagation.
- Ensure nameservers are correct:
domain_info(domain="mydomain.com").
x402 payment errors
- Ensure wallet has USDC on Base (network
eip155:8453):wallet_info(). - Check if the endpoint requires payment:
x402_check(url="..."). - Try
x402_fetchdirectly for manual control over the request.
Domain shows as unavailable
- The domain is already registered by someone else.
- Try alternative TLDs:
domain_search(query="myname", tlds="com,io,ai,dev,xyz,net,org"). - Check if it's a premium domain (higher price) vs truly unavailable.
