> ## 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.

# 为什么选择 EIP-7702

> 最小信任的卖家钱包方案：用户免 gas，资金安全直达卖家

## 问题背景

在 x402 支付协议中，我们希望实现：

1. **用户免 gas**：Facilitator 代付所有链上交易费用
2. **最小信任**：用户只需信任卖家，不需要信任 Facilitator
3. **简单易用**：卖家无需部署复杂的智能合约

## 传统 Permit 方案的信任问题

### 方案一：授权给 Facilitator

如果让用户将代币授权给 Facilitator（`spender = facilitator`），存在信任风险：

```typescript theme={null}
// ❌ 存在信任风险的方案
const permit = {
  owner: buyerAddress,
  spender: facilitatorAddress, // 授权给中介
  value: amount,
};
```

**问题**：

* 用户必须信任 Facilitator 不会作恶
* Facilitator 理论上可以将资金转移到任意地址
* 违背了 x402 的"最小信任"原则

### 方案二：授权给卖家，但 gas 由谁付？

如果让用户直接授权给卖家（`spender = seller`）：

```typescript theme={null}
// ✅ 信任模型正确
const permit = {
  owner: buyerAddress,
  spender: sellerAddress, // 授权给卖家
  value: amount,
};
```

**问题**：

* 卖家需要自己提交交易并支付 gas
* 或者卖家需要部署智能合约来处理支付
* 增加了卖家的技术门槛和成本

## EIP-7702 的解决方案

### 什么是 EIP-7702？

EIP-7702 允许 EOA（普通钱包地址）**临时获得智能合约的能力**：

* 通过签名授权，EOA 可以"委托"一个智能合约的代码
* 在委托期间，这个 EOA 的行为就像一个智能合约
* 可以随时撤销委托，恢复成普通 EOA

```typescript theme={null}
// 卖家签署一次性授权（链下签名，免费）
const authorization = {
  chainId: 84532, // Base Sepolia
  codeAddress: "0xSellerWalletContract", // 卖家钱包合约地址
  nonce: 0,
};

const signature = await sellerWallet.signTypedData(
  domain,
  types,
  authorization
);
```

**授权后的效果**：

```
卖家的 EOA（0xSeller123）：
  ├─ 对外：还是普通 EOA 地址
  ├─ 内部：执行智能合约代码
  ├─ 功能：自动分账、权限控制等
  └─ 可撤销：随时恢复成普通 EOA
```

### 卖家钱包合约的工作原理

卖家通过 EIP-7702 将自己的 EOA 升级为"卖家钱包"后，可以实现以下逻辑：

1. **接收用户的 Permit 授权**（用户授权给卖家 EOA）
2. **自动执行转账**（从用户钱包转到卖家 EOA）
3. **自动分账**：
   * 99% 转给卖家的受益人地址
   * 1% 作为 Facilitator 手续费

## 完整支付流程

```
第一步：卖家启用 EIP-7702（一次性设置）
  卖家 → 签名委托授权 → EOA 获得卖家钱包能力

第二步：用户发起支付（每次）
  1. 用户请求资源 → 服务端返回 402
  2. 用户生成 Permit 签名（spender = 卖家 EOA）
  3. 用户在 X-PAYMENT 头中发送签名

第三步：验证与结算（每次）
  1. Facilitator 收到支付请求
  2. 验证 Permit 签名有效性
  3. 提交链上交易（Facilitator 支付 gas）
  4. 卖家钱包合约自动执行分账

第四步：资金到账（即时）
  用户钱包 → 卖家 EOA → 自动分账
     ├─→ 99% → 卖家受益人账户
     └─→ 1%  → Facilitator 手续费
```

## 核心优势

### 1. 零托管风险

```
资金路径：用户 → 卖家 EOA → 自动分账
         ↑
         └─ Facilitator 从不接触资金！
```

* Facilitator 只负责：提交交易 + 支付 gas
* 资金直接从用户转到卖家指定地址
* 没有任何第三方托管环节

### 2. 最小信任模型

```typescript theme={null}
// 用户授权时看到的
permit.spender = "0xSeller123"; // 卖家地址

// 而不是
permit.spender = "0xFacilitator456"; // 中介地址
```

* 用户只需信任卖家（买卖双方的天然信任）
* 不需要信任 Facilitator 或其他第三方
* 符合用户心理预期

### 3. 用户完全免 gas

* 所有链上交易费用由 Facilitator 承担
* 用户只需签名（离链操作，免费）
* Facilitator 通过手续费获得激励（如 1%）

### 4. 卖家零门槛

```
无需部署合约：只需签名授权 EIP-7702
无需支付 gas：Facilitator 代付
无需技术背景：像使用 MetaMask 一样简单
```

* 一次性设置成本：\~\$1-3（EIP-7702 授权 gas）
* 后续所有支付：0 成本
* 远低于部署智能合约（\~\$50-200）

### 5. 灵活配置

每个卖家可以独立配置：

* **受益人地址**：资金最终到账的地址
* **手续费率**：Facilitator 获得的比例（如 0-5%）
* **信任的 Facilitator**：白名单机制

### 6. 保持 EOA 身份

```
卖家依然是普通 EOA：
  ✅ 可以用 MetaMask 直接管理
  ✅ 可以随时撤销委托
  ✅ 可以升级到新的钱包合约
  ✅ 无需学习智能合约开发
```

### 7. 更多应用可能

* Settle Hook 合约：在卖家钱包流程中增加 settle 钩子（Hook），将后置业务逻辑封装到独立合约中：
  * 更灵活地制定卖家的结算/核销/开票/权限分配等逻辑
  * 在部分场景下降低对“settle 执行完成后”离线流程的维护成本
  * 可版本化、可替换，不影响买家地址与最小信任模型

* “挖矿”式代付市场：将用户已签名的交易/支付意图广播给愿意参与的 Facilitator：
  * 通过手续费激励，先提交并成功结算者获得奖励
  * 提高成功率与可用性，减少对单一 Facilitator 的依赖
  * 对买家/卖家透明，仍保持免 gas 与最小信任体验

## 与其他方案的对比

| 方案                   | 用户免 gas | 最小信任 | 卖家门槛 | 部署成本        |
| -------------------- | ------- | ---- | ---- | ----------- |
| 授权给 Facilitator      | ✅       | ❌    | 低    | 无           |
| 卖家自己提交交易             | ❌       | ✅    | 中    | 无           |
| 卖家部署智能合约             | ✅       | ✅    | 高    | 中           |
| **EIP-7702 卖家钱包** 🏆 | ✅       | ✅    | 低    | 低（\~\$0.05） |

## 适用场景

### ✅ 推荐使用 EIP-7702 的场景：

* 支持更多代币/更多链/更多场景
* 最小信任原则（买家只需信任卖家）
* 希望为 Facilitator 提供激励（手续费分配）

## 快速开始

想要使用 EIP-7702 卖家钱包？查看以下资源：

<CardGroup cols={2}>
  <Card title="快速入门" icon="rocket" href="/user-guide/quick-start">
    5 分钟部署 EIP-7702 卖家钱包
  </Card>

  <Card title="卖家指南" icon="store" href="/user-guide/seller-guide">
    详细的卖家集成步骤
  </Card>

  <Card title="什么是 x402x" icon="lightbulb" href="/user-guide/what-is-x402x">
    了解 x402x 的扩展能力
  </Card>

  <Card title="代码示例" icon="code" href="/user-guide/code-snippet">
    查看完整代码实现
  </Card>
</CardGroup>
