内容
# ZeroDust
**完全退出区块链 - 通过 EIP-7702 将原生 gas 余额的 100% 转移**
ZeroDust 是一个基于意图的退出系统,允许用户通过 EIP-7702 赞助执行,将其整个原生 gas 代币余额精确清零。
## 面向 AI 代理
代理在运行过程中会积累 dust 作为副产品。任何进行多链工作 - 套利、跨链、测试、部署 - 最终都会在链上留下无法使用的 gas。
ZeroDust 是一个 **MCP 服务器**,因此任何与 MCP 兼容的代理都可以将其钱包余额精确清零:
```json
{
"mcpServers": {
"zerodust": {
"command": "npx",
"args": ["@zerodust/mcp-server"],
"env": {
"ZERODUST_ALLOW_EXECUTE": "true",
"ZERODUST_PRIVATE_KEY": "0x..."
}
}
}
}
```
默认情况下只读。清零需要上述明确的授权,并且资金只能流向代理自己的地址,除非 `ZERODUST_ALLOWED_DESTINATIONS` 指定了其他地址 - 因此注入提示的代理仍然无法将资金发送到您从未批准的地址。
| 包 | 用途 |
|---------|-----|
| [`@zerodust/mcp-server`](https://www.npmjs.com/package/@zerodust/mcp-server) | MCP (Claude Code, Claude Desktop, 任何 MCP 客户端) |
| [`@zerodust/sdk`](https://www.npmjs.com/package/@zerodust/sdk) | TypeScript,直接 - `createAgentFromPrivateKey` |
| [`@zerodust/langchain`](https://www.npmjs.com/package/@zerodust/langchain) | LangChain 工具 |
| [`@zerodust/ai-sdk`](https://www.npmjs.com/package/@zerodust/ai-sdk) | Vercel AI SDK 工具 |
**主网验证** (2026-07-21): Optimism → Base,源余额精确为 0,委托自动撤销,99.88% 交付,23.2s 端到端 - [`0x19456ea8…`](https://optimistic.etherscan.io/tx/0x19456ea86ed91097847ddad6d6b8cfd6a5240dedac3b100d1a06eb64c86def6c).
> **关于钱包的说明:** 浏览器 UI 需要非标准的 `wallet_signAuthorization` RPC,而目前没有钱包支持此功能 ([MetaMask #7836](https://github.com/MetaMask/core/pull/7836), [Rabby #3411](https://github.com/RabbyHub/Rabby/pull/3411))。代理不受影响 - 它们持有自己的私钥并在本地签名。
## 问题
当用户想要完全退出区块链时,他们面临着一个不可能的情况:
```
用户拥有:Arbitrum 上 0.0008 ETH
用户想要:Arbitrum 上 0 ETH(将所有资金转移到 Base)
问题:
├── 要发送 ETH,需要 ETH 作为 gas
├── 如果发送所有 ETH,则无法支付 gas
├── 如果保留 gas,则无法发送所有 ETH
└── 结果:总是有一小部分资金无法转移
```
**ZeroDust 是唯一允许原生 gas 代币完全退出区块链的解决方案。**
## 工作原理
1. 用户将钱包连接到 ZeroDust
2. 用户选择源链和目标链(相同或不同链)
3. 用户签署一次授权(无需 gas)
4. ZeroDust 赞助执行清零操作
5. 用户在目标链上收到资金
6. **源链余额:精确为 0**
## 支持的清零场景
| 场景 | 描述 | 示例 |
|------|-------------|---------|
| 跨链,相同地址 | 退出到另一个链上的自己 | Arbitrum → Base(相同钱包) |
| 跨链,不同地址 | 退出到另一个链上的其他钱包 | Arbitrum → Base(不同钱包) |
| 同链,不同地址 | 合并到另一个钱包 | Arbitrum → Arbitrum(不同钱包) |
**后条件(链上强制执行):** 源余额 = 精确为 0 wei
## 支持的链
**合约地址(所有链相同):** `0x3732398281d0606aCB7EC1D490dFB0591BE4c4f2`
ZeroDust 已在 **26 条主网链** 上部署,支持 EIP-7702:
| 链 | ID | 代币 | 链 | ID | 代币 |
|-------|---:|-------|-------|---:|-------|
| Ethereum | 1 | ETH | Sei | 1329 | SEI |
| Optimism | 10 | ETH | Astar zkEVM | 1514 | ETH |
| BSC | 56 | BNB | Soneium | 1868 | ETH |
| Gnosis | 100 | xDAI | Mantle | 5000 | MNT |
| Unichain | 130 | ETH | Kaia | 5330 | KAIA |
| Polygon | 137 | POL | Base | 8453 | ETH |
| Sonic | 146 | S | Plasma | 9745 | XPL |
| X Layer | 196 | OKB | ApeChain | 33139 | APE |
| Fraxtal | 252 | frxETH | Mode | 34443 | ETH |
| World Chain | 480 | ETH | Arbitrum | 42161 | ETH |
| Celo | 42220 | CELO | Redstone | 57073 | ETH |
| BOB | 60808 | ETH | Berachain | 80094 | BERA |
| Scroll | 534352 | ETH | Zora | 7777777 | ETH |
以及 **46 条测试网** 用于开发。
查看 [contracts/README.md](./contracts/README.md) 获取浏览器链接。
## 项目结构
```
zerodust/
├── contracts/ # 智能合约(Foundry)
│ ├── src/
│ │ ├── ZeroDustSweepMainnet.sol # 生产环境合约
│ │ └── ZeroDustSweepTEST.sol # 测试网合约
│ ├── script/
│ │ └── DeployMainnet.s.sol # 主网部署(CREATE2)
│ └── broadcast/ # 部署日志
└── docs/
```
## 架构
### 合约架构
```
┌─────────────────────────────────────────────────────────────┐
│ 用户的 EOA │
│ (EIP-7702 委托) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ZeroDustSweepMainnet(字节码) │ │
│ │ │ │
│ │ executeSweep(intent,sig) │ │
│ │ │ │ │
│ │ ┌────────────┴────────────┐ │ │
│ │ ▼ ▼ │ │
│ │ MODE_TRANSFER(0) MODE_CALL(1) │ │
│ │ 同链清零 跨链清零 │ │
│ │ │ │ │ │
│ │ ▼ ▼ │ │
│ │ 转移到 调用桥接目标 │ │
│ │ 目标地址 (callTarget + callData) │ │
│ │ │ │ │
│ └─────────────────────────────────────┼────────────────┘ │
│ │ │
└────────────────────────────────────────┼─────────────────────┘
│
▼
┌─────────────────────────┐
│ 外部桥接 │
│ (Gas.zip) │
│ │
│ 在目标链上交付资金 │
└─────────────────────────┘
```
### 安全模型
- **无管理员功能** - 部署后不可变
- **无可升级性** - 您看到的就是您得到的
- **统一的 SweepIntent** - 所有清零类型的单一签名结构
- **零余额强制执行** - 如果任何余额留存,合约会回滚
- **ERC-7201 存储** - 防止与其他 EIP-7702 应用的槽冲突
- **不可变赞助商** - 存储在字节码中,而不是存储中
## 费用结构
**服务费:** 清零价值的 1%,最低 0.05 美元,最高 0.50 美元。
```
总费用 = Gas 补偿 + 服务费 + 桥接费(如果跨链)
示例:
- 5 美元余额 → 0.05 美元费用(1% = 0.05 美元,按最低计费)→ 用户收到约 4.95 美元
- 10 美元余额 → 0.10 美元费用(1%)→ 用户收到约 9.90 美元
- 60 美元余额 → 0.50 美元费用(最高)→ 用户收到约 59.50 美元
```
## 文档
- [contracts/README.md](./contracts/README.md) - 合约详情和部署
- [contracts/SPECIFICATION.md](./contracts/SPECIFICATION.md) - 技术规格
- [contracts/DEPLOYMENT.md](./contracts/DEPLOYMENT.md) - 部署指南
## 安全
ZeroDust 的设计以安全为首要任务:
- **无资金托管** - 所有操作都是原子的,单笔交易完成
- **用户控制的限制** - maxTotalFeeWei 和 minReceive 由用户签名
- **强制模拟** - 每次执行前模拟交易
- **routeHash 绑定** - 签名绑定到特定的桥接路由(跨链)
- **内部安全审查** - 7 轮,识别并修复 16 个问题
- **外部审计** - 待定(全启动前需要)
## 状态
**智能合约:** 已在 **26 条主网链** 和 46 条测试网部署
### 合约版本
| 合约 | 状态 | 功能 |
|---------|--------|----------|
| ZeroDustSweepMainnet | **生产环境** | 统一的 SweepIntent,粒度费用,赞助模型 |
| ZeroDustSweepTEST | 测试网 | 与主网相同,用于测试 |
### 验证的主网清零
| 链 | 清零金额 | 交易 |
|-------|-------|-----|
| Base | $3.46 → 0 | [查看](https://basescan.org/tx/0x2f59a4598c7fcdce404c2330d361fda1cbab84b841e85bec82ca12164101b73d) |
| Arbitrum | $3.57 → 0 | [查看](https://arbiscan.io/tx/0xffa0a26008157b0225a7c15c2263b80b6e386520dce69b58827320ced0dc5c62) |
| BSC | $2.25 → 0 | [查看](https://bscscan.com/tx/0xc94f52c8689268118e3d42dd678916982b5479adb0e69227ddd1c3142ea52972) |
| Polygon | $7.55 → 0 | [查看](https://polygonscan.com/tx/0xc21c4c29dbe1624c06a2a9a7692ac68409f3407f0c1960f01100ef39ceeb369f) |
查看 [contracts/README.md](./contracts/README.md) 获取完整的部署列表。
### 不支持 EIP-7702 的测试网
以下测试网已测试,不支持 EIP-7702:
Abstract, Lens, zkSync, Taiko, opBNB, Avalanche, Swell, Cyber, Boba, Metis, Fuse, Aurora, Flare, Vana, Corn, Rootstock, Apechain, IoTeX, Viction, XDC, Telos, Kava, EDU Chain, Gravity, Manta Pacific, Lightlink, Moonbase, Nibiru, Somnia, Rari, Blast, Xai, B3, Mezo, Chiliz, HashKey, Memecore
*注意:主网支持可能与测试网不同。*
## 跨链桥接
ZeroDust 通过 MODE_CALL 模式支持跨链清零:
- **callTarget**:桥接合约地址
- **callData**:桥接特定的交易数据
- **routeHash**:`keccak256(callData)` - 将签名绑定到特定的路由
**主要桥接:** [Gas.zip](https://gas.zip) - 239+ 链,约 5 秒交付
## 许可证
MIT 许可证 - 见 [LICENSE](./LICENSE)
---
**已在 26 条主网链上部署生产环境。** 合约:`0x3732398281d0606aCB7EC1D490dFB0591BE4c4f2`