/ x402 v2 Spezifikation

Protokoll-Referenz.

Vollständiges x402 v2 Protokoll: Request/Response-Header, JSON-Schemas, EIP-712-Strukturen, unterstützte Netzwerke und Contract-Adressen.

/ 01

1. Client sendet initialen Request

Ein Standard-HTTP-Request an eine geschützte Ressource. Beim ersten Versuch brauchst du keine speziellen Header.

/ 02

2. Server antwortet mit 402 + payment-required

Die Response enthält einen payment-required Header: ein Base64-JSON-Objekt mit x402-Version, akzeptierten Payment-Methoden, Beträgen, Empfänger-Adresse und Ressourcen-ID.

/ 03

3. Client signiert die Zahlung

Das Wallet parst die Anforderungen, wählt EIP-3009 oder Permit2, baut EIP-712 Typed Data und signiert mit dem Private Key des Users.

/ 04

4. Client versucht es mit payment-signature nochmal

Der ursprüngliche Request wird mit einem payment-signature Header nochmal gesendet. Der Header enthält das signierte Authorization-Payload (Base64 JSON).

/ 05

5. Server verifiziert und liefert

Der Server dekodiert die Signatur, submittet die Meta-TX (EIP-3009) oder Settlement-TX (Permit2) on-chain, bestätigt den Eingang und liefert die Ressource mit einem payment-response Header.

payment-required Header Schema

{
  "x402Version": 2,
  "accepts": [
    {
      "scheme": "eip3009",
      "network": "base",
      "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "maxAmountRequired": "100000",
      "resource": "/api/inference",
      "description": "GPU inference — 1 request",
      "mimeType": "application/json",
      "payTo": "0x...facilitator",
      "extra": {}
    }
  ]
}

Unterstützte Netzwerke

x402 v2 siedelt in USDC auf diesen EVM-Netzwerken an:

ChainChain IDUSDC address
Ethereum10xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Polygon1370x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
Base84530x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Arbitrum421610xaf88d065e77c8cC2239327C5EDb3A432268e5831
Optimism100x0b2C639c533813f4Aa9D7837CAf62653d097Ff85
BSC560x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d

EIP-712 Typed Data

Beide Signaturmethoden nutzen EIP-712 Structured Data für Sicherheit und Lesbarkeit. Das Wallet zeigt human-readable Felder, bevor du signierst.

EIP-3009 types

TransferWithAuthorization(
  address from,
  address to,
  uint256 value,
  uint256 validAfter,
  uint256 validBefore,
  bytes32 nonce
)

Permit2 types

PermitWitnessTransferFrom(
  TokenPermissions permitted,
  address spender,
  uint256 nonce,
  uint256 deadline,
  X402Witness witness
)
TokenPermissions(
  address token,
  uint256 amount
)

Zuletzt aktualisiert: