Gateway

Discovery document

GET /.well-known/agent-commerce — merchant, adapters, pinned spec versions and the settlement destination.

GET/.well-known/agent-commercepublic

What this gateway is and what it can do: merchant, enabled protocols, every adapter's pinned specification and capabilities, and the effective settlement destination. If the documentation and this endpoint ever disagree, the endpoint is the truth.

curl -s http://localhost:8080/.well-known/agent-commerce

Several x402 offers

With more than one rail offer, payments.x402.options lists each offer's public terms and its last health status; the top-level fields mirror the first. resourceOptions lists each resource's own x402.accepts offers by resource id. RPC URLs are withheld.

json
"x402": {
  "enabled": true,
  "network": "eip155:8453",
  // … the first offer's fields, then:
  "mode": "mainnet",
  "paymentFlow": "authorization",
  "options": [
    { "network": "eip155:8453", "asset": "0x8335…2913", "assetName": "USD Coin",
      "assetVersion": "2", "assetDecimals": 6, "payTo": "0x…", "status": "pass" },
    { "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "asset": "EPjF…Dt1v",
      "assetDecimals": 6, "payTo": "…", "status": "pass" }
  ]
}

Adapter descriptor

namestringrequired
kindprotocol | payment | storage | authorizationrequired
implementationVersionstringrequired
Version of the adapter, independent of the spec.
supportedSpecstringrequired
The exact pinned specification revision.
capabilitiesstring[]required
unsupportedstring[]
What is explicitly not implemented — the same list doctor prints.
statusstable | experimental | plannedrequired

The x402 descriptor's supportedSpec names the chain families its offers use (family=eip155, solana, near), and its capabilities list exact-evm, exact-svm, exact-near, permit2, multiple-offers and erc-8409-quotes as they apply.

Quote issuer

With experimental ERC-8409 quotes enabled, payments.x402.quote publishes the issuer address buyers use to check quote signatures. The private signing key stays in the gateway.

json
"quote": {
  "issuer": "0x…",
  "requestScheme": "agent-commerce/request/v1",
  "extension": "erc-8409",
  "status": "experimental"
}

payments.x402.mode and payments.mpp.mode are the deployment mode the network names: local for eip155:31337, otherwise testnet or mainnet. Each rail publishes its paymentFlow (x402 defaults to authorization, MPP to upfront) and, when a resource that lists the rail sets its own, resourcePaymentFlows. A Permit2 offer carries assetTransferMethod: "permit2" and uses Permit2's signing domain. Token assetName and assetVersion are omitted when the token's EIP-712 domain is unknown; the network's USDC includes both. A payments block appears whenever it is configured, even with enabled: false. The RPC and facilitator URLs are withheld because providers put API keys in them, and so are facilitator credentials, signer keys and the MPP realm and challengeSecret. Adapter health omits its detail here. supportedSpec names the wire contract and changes only when that contract does; implementationVersion is the package version.