Client → Facilitator: RouteRequest

The client asks a facilitator for a route to satisfy the offer:

{
  "spec": "x402-aar/v0.1",
  "offerId": "0xabc123...",
  "merchant": {
    "chain": "base",
    "acceptedAssets": [
      {"asset": "0xa0b86991...", "decimals": 6},
      {"asset": "0xyourtoken...", "decimals": 18}
    ]
  },
  "have": {
    "chain": "base",
    "asset": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", 
    "symbol": "ETH",
    "amountInMax": "1000000000000000"
  },
  "constraints": {
    "minOut": null,
    "maxSlippageBps": 80,
    "deadlineTs": 1730083200
  },
  "payer": "0xBuyerAddress",
  "payTo": "0xMerchantTreasuryOrSplitter",
  "extras": {
    "policyProfileURI": null,
    "nettingWindowId": null
  }
}

Key fields:

  • have.amountInMax: the maximum amount of the payer’s asset they’re willing to spend.

  • constraints.minOut: optional lower bound (in merchant asset units) for deterministic verification.

  • payTo: merchant’s settlement address (can be a splitter contract).

Last updated