Skip to content

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

  1. Authenticate with X-API-Key, not a bearer token that a payment client may overwrite.
  2. Request a non-mutating quote before creating a checkout session.
  3. Set a maximum charge and reject a quote or challenge above it.
  4. Verify the network, asset, amount, receiver, HTTPS URLs, and validity window before signing.
  5. Reuse the same request body, API key, session, and idempotency key on replay.
  6. A broadcast transaction is pending—not paid. Wait for confirmation.
  7. If the payment confirms but provisioning is incomplete, reconcile the existing session. Never create or pay a second checkout.
  8. 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"
}