Agent payments
Headless Domains lets an authenticated agent register a domain without using a browser checkout. The agent requests a quote, selects a settlement rail, pays the returned challenge, and verifies that the domain became active.
Choose a payment route
| Route | Asset | Network | Best for |
|---|---|---|---|
| MPP (default) | pathUSD | Tempo mainnet | Existing MPP clients and the default autonomous checkout |
| Base USDC | USDC | Base mainnet (eip155:8453) |
Agents that already hold native USDC on Base |
| GFA Gems | GFA Gems | GFAVIP | Users and agents operating inside the GFA ecosystem |
Tempo remains the default MPP route. Base is used only when the request
explicitly selects base-mainnet; enabling or disabling Base does not change
the Tempo/PathUSD route.
Base availability is runtime state
Base is operator-gated. Before choosing it, read
https://machine.checkout.best/.well-known/payment-methods and require
network: eip155:8453 and settlement_enabled: true. Documentation of the
route does not mean that it is currently accepting payments.
Common safety rules
- Authenticate with
X-API-Key, not a bearer token that a payment client may overwrite. - Request a non-mutating quote before creating a checkout session.
- Set a maximum charge and reject a quote or challenge above it.
- Verify the network, asset, amount, receiver, HTTPS URLs, and validity window before signing.
- Reuse the same request body, API key, session, and idempotency key on replay.
- A broadcast transaction is pending—not paid. Wait for confirmation.
- If the payment confirms but provisioning is incomplete, reconcile the existing session. Never create or pay a second checkout.
- Keep private keys in an OS keychain or secret manager. Never send a private
key to Headless Domains or
machine.checkout.best.
Next steps
For Tempo/PathUSD, omit X-MPP-Network and follow the canonical Tempo section
in the MPP skill. The existing
Tempo flow remains the production default.
GFA Gems example
Use Gems when the authenticated account has a sufficient balance:
POST https://headlessdomains.com/api/v1/domains/register
X-API-Key: hd_agent_YOUR_KEY
Content-Type: application/json
{
"domain": "myagent",
"namespace": "agent",
"years": 1,
"agreed_to_terms": true,
"payment_method": "gems"
}