Offer Extension (Merchant → Client)

A merchant returns 402 Payment Required with the standard x402 headers plus AAR hints.

Required new header (compact JSON, base64url encoded):

  • X-402-AAR-OFFER

Decoded JSON fields (v0.1):

{
  "offerId": "0xabc123...",
  "acceptedAssets": [
    {"chain": "base", "asset": "0xa0b86991...", "symbol": "USDC", "decimals": 6},
    {"chain": "base", "asset": "0xyourtoken...", "symbol": "YTK", "decimals": 18}
  ],
  "routeURI": "https://router.example/aar/quote",
  "minSettleWindowMs": 15000,
  "policy": {
    "denyAssets": [],
    "maxSlippageBps": 100,
    "deadlineMs": 30000
  }
}
  • offerId: Merchant’s unique identifier for the price/terms snapshot.

  • acceptedAssets[]: Assets that settle the offer without routing (baseline x402) and target assets for AAR routes.

  • routeURI: Optional convenience endpoint for RouteRequest; clients may use other facilitators.

  • policy: Soft hints for wallets/clients (can be enforced by merchant during verification).

Note: The canonical x402 pricing and terms continue to live in the normal x402 offer header. AAR only adds routing hints.

Last updated