Authentication
Most of the API works with no key. A key adds fields to a resolve, and /pay needs one to settle.
What needs a key
| Action | Key needed |
|---|---|
| Read a price or a 402 challenge | No |
| Call a read-only MCP tool | No |
Settle screen, resolve or presend over x402 | No |
Settle pay over x402 | Yes |
Get the tier 1, 2 or 3 fields from resolve_alias | Yes |
Get a key
An API key is free. Request one, then click the link in the verification email. The server issues the key when you click.
curl -X POST https://api.dnsofmoney.com/api/v1/access-requests \
-H 'Content-Type: application/json' \
-d '{"name":"Your Name","email":"you@example.com","use_case":"agent payments"}'
GET /.well-known/api-access describes this flow in JSON.
Send a key
Send the key in the X-API-Key header. This example sends it to the MCP REST endpoint.
curl -s -X POST https://api.dnsofmoney.com/mcp/tools/call \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_KEY' \
-d '{"tool":"resolve_alias","arguments":{"alias_uri":"pay:dnsofmoney"}}'
Keep the key on your server. Do not put it in a browser or in a public repository.
Tiers
The key sets how much a resolve returns.
| Tier | Caller | You get |
|---|---|---|
| 0 | No key | Name, status, IDs and resolve time |
| 1 | starter key | Plus display name, entity type and preferred rail |
| 2 | developer, business or enterprise key, or a paid resolve | Plus endpoints and compliance |
| 3 | system or agent key | Plus routing metadata and agent_commerce |
The free key has the developer plan, which is tier 2.
Rate limits
| Caller | Limit |
|---|---|
| No key, per client IP | 60 requests per minute |
starter, developer | 60 requests per minute |
enterprise | 1200 requests per minute |
| Any caller, per IP | 10 requests per second at the edge |
Responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Back off when X-RateLimit-Remaining is low.
The limits are also published as data in rate-limits.yml.
Payments are not keys
An x402 payment is proof of payment for one request. It is not a login. Your wallet signs the payment, and we never hold your private keys.
Treat an Idempotency-Key value as a bearer secret. Anyone who presents it gets the receipt.