> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x402x.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment Payload

> 客户端生成并通过 X-Payment 发送的支付凭证

## 通用结构

```ts theme={null}
interface PaymentPayload {
  x402Version: 1;
  scheme: "exact";
  network: string;
  payload: {
    authorizationType: "eip3009" | "permit" | "permit2";
    signature: `0x${string}`;
    authorization: Record<string, unknown>; // 随类型变化
  };
}
```

## 授权类型结构

### EIP-3009 (transferWithAuthorization)

```ts theme={null}
interface Eip3009PaymentPayload {
  x402Version: 1;
  scheme: "exact";
  network: string;
  payload: {
    authorizationType: "eip3009";
    signature: `0x${string}`; // EIP-712
    authorization: {
      from: `0x${string}`;
      to: `0x${string}`;
      value: string;        // wei
      validAfter: string;   // unix seconds
      validBefore: string;  // unix seconds
      nonce: `0x${string}`; // 32 bytes
    };
  };
}
```

### EIP-2612 Permit

```ts theme={null}
interface PermitPaymentPayload {
  x402Version: 1;
  scheme: "exact";
  network: string;
  payload: {
    authorizationType: "permit";
    signature: `0x${string}`; // EIP-712
    authorization: {
      owner: `0x${string}`;
      spender: `0x${string}`;
      value: string;      // wei
      deadline: string;   // unix seconds
      nonce: string;      // on-chain nonce
    };
  };
}
```

### Permit2（含 Witness 可选）

```ts theme={null}
interface Permit2PaymentPayload {
  x402Version: 1;
  scheme: "exact";
  network: string;
  payload: {
    authorizationType: "permit2";
    signature: `0x${string}`; // EIP-712
    authorization: {
      owner: `0x${string}`;
      spender: `0x${string}`;
      token: `0x${string}`;
      amount: string;     // wei
      deadline: string;   // unix seconds
      nonce: string;      // uint256
      to?: `0x${string}`; // Witness（接收者绑定）
    };
  };
}
```

## EIP-712 关键字段

* domain: name/version/chainId/verifyingContract
* types: 随授权类型而变（TransferWithAuthorization/Permit/Permit2）
* message: 授权主体（amount/nonce/deadline等）

## 示例（EIP-3009）

```json theme={null}
{
  "x402Version": 1,
  "scheme": "exact",
  "network": "bsc",
  "payload": {
    "authorizationType": "eip3009",
    "signature": "0x...",
    "authorization": {
      "from": "0xBuyer",
      "to": "0xSeller",
      "value": "1000000",
      "validAfter": "0",
      "validBefore": "1735689600",
      "nonce": "0x7c7c..."
    }
  }
}
```

## 示例（Permit2 with Witness）

```json theme={null}
{
  "x402Version": 1,
  "scheme": "exact",
  "network": "bsc",
  "payload": {
    "authorizationType": "permit2",
    "signature": "0x...",
    "authorization": {
      "owner": "0xBuyer",
      "spender": "0xSpender",
      "token": "0xUSDC",
      "amount": "1000000",
      "deadline": "1735689600",
      "nonce": "123456789",
      "to": "0xSeller"
    }
  }
}
```

## 校验清单（服务端）

* 版本/方案/网络 与 requirements 一致
* 授权签名有效，签名者与 owner/from 匹配
* Token/接收者匹配：`token === asset`，`to/spender === payTo`
* 金额与时效：满足 `maxAmountRequired` 且未过期
* Nonce/余额：未使用且余额充足（按类型检查）

## 关键校验

* 版本/方案/网络 与 requirements 一致
* 金额 ≥ `maxAmountRequired`
* 截止时间未过期
* `spender === payTo`（EIP-7702 保障最小信任）

## 示例（Permit）

```json theme={null}
{
  "x402Version": 1,
  "scheme": "exact",
  "network": "bsc",
  "payload": {
    "authorizationType": "permit",
    "signature": "0x...",
    "authorization": {
      "owner": "0xBuyer",
      "spender": "0xSeller",
      "value": "1000000",
      "deadline": "1735689600",
      "nonce": "0"
    }
  }
}
```
