以太坊钱包管理Skill wallets

这个技能用于创建、管理和使用以太坊钱包,包括外部拥有账户(EOAs)、智能合约钱包、多签钱包(如Safe)和账户抽象技术。它强调安全密钥处理、交易发送和资金管理,适用于需要与以太坊交互的AI代理,确保安全操作并防止密钥泄露。关键词:以太坊、钱包、安全、交易、密钥管理、智能合约、账户抽象、Web3、区块链、AI代理、多签、Safe。

Web3 0 次安装 0 次浏览 更新于 3/24/2026

name: 钱包 description: 如何创建、管理和使用以太坊钱包。涵盖EOAs、智能合约钱包、多签(Safe)和账户抽象。对于任何需要与以太坊交互的AI代理至关重要——发送交易、签名消息或管理资金。包括安全密钥处理的护栏。

以太坊上的钱包

你可能误解的地方

EIP-7702 已上线。 自Pectra(2025年5月7日)以来,常规EOAs可以临时委托给智能合约——实现批量交易、Gas赞助和会话密钥,无需迁移钱包。这并非“即将到来”,而是已发布。

账户抽象状态: ERC-4337正在增长但仍处于早期阶段(2026年2月)。主要实现:Kernel(ZeroDev)、Biconomy、Alchemy Account Kit、Pimlico。EntryPoint v0.7:0x0000000071727De22E5E9d8BAf0edAc6f37da032

Safe 保护超过 $100B+。 它不仅仅是一个开发工具——它是机构和DAO财务管理的主导多签解决方案。

EIP-7702:智能EOAs(自2025年5月上线)

EOAs 可以在单个交易中临时将控制权委托给智能合约。

工作原理:

  1. EOA签署授权将控制权委托给合约
  2. 在交易期间,EOA的代码变为合约的代码
  3. 合约执行复杂逻辑(批处理、赞助等)
  4. 交易后,EOA恢复正常

这实现了:

  • 将10个代币批准批量处理为一个交易
  • 为EOA用户提供Gas赞助/元交易
  • 具有有限权限的会话密钥
  • 自定义授权逻辑
  • 消除“批准疲劳”(批准 + 执行 → 一步完成)

状态(2026年2月): 已在主网上部署。MetaMask、Rainbow正在添加支持。对于生产代理仍处于早期——在工具成熟前使用标准EOAs或Safe。

Safe(Gnosis Safe)多签

关键地址(v1.4.1,跨链确定性)

合约 地址
Safe Singleton 0x41675C099F32341bf84BFc5382aF534df5C7461a
Safe Proxy Factory 0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67
MultiSend 0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526

在主网、Arbitrum、Base和所有主要链上地址相同。

用于AI代理的Safe

模式: 1-of-2 Safe

  • 所有者1:代理的钱包(热钱包,自动化)
  • 所有者2:人的钱包(冷钱包,恢复)
  • 阈值:1(代理可单独行动)

好处:如果代理密钥被泄露,人可以移除它。人总是可以恢复资金。代理可以批量处理交易。

🚨 永远不要将秘密提交到Git

这是AI代理丢失资金和泄露凭证的第一方式。 机器人实时抓取GitHub并在几秒钟内利用泄露的秘密——即使是从私有仓库,即使立即删除。提交到Git的秘密永远被泄露。

这经常发生在AI编码代理上。 代理生成部署脚本、硬编码密钥、运行 git add .,钱包在下一次提示前就被清空。或者代理将Alchemy API密钥粘贴到 scaffold.config.ts 中,最终出现在公共仓库中。

这适用于所有秘密:

  • 钱包私钥——资金立即被清空
  • API密钥——Alchemy、Infura、Etherscan、WalletConnect
  • 嵌入密钥的RPC URL——https://base-mainnet.g.alchemy.com/v2/YOUR_KEY
  • OAuth令牌、承载令牌、密码

预防

# .gitignore(必须在每个项目中存在)
.env
.env.*
*.key
*.pem
broadcast/
cache/
# 在每次提交前验证
git diff --cached --name-only | grep -iE '\.env|key|secret|private'
# 如果匹配任何内容,停止并修复它

# 核选项:扫描整个仓库历史
git log --all -p | grep -iE 'private.?key|0x[a-fA-F0-9]{64}'

如果您已经提交了密钥

  1. 假设它已被泄露。 不要希望没人看到它。
  2. 立即将所有资金转移 到新钱包。
  3. 轮换密钥。 生成新密钥。旧密钥永远作废。
  4. 使用 git filter-repo 或 BFG Repo Cleaner 清理Git历史——但这是损害控制,不是预防。密钥已经被泄露。
  5. 撤销任何来自泄露地址的代币批准。

AI代理的安全模式

# 从环境变量加载密钥(永远不要硬编码)
cast send ... --private-key $DEPLOYER_PRIVATE_KEY

# 或使用加密的密钥库
cast send ... --keystore ~/.foundry/keystores/deployer --password-file .password

# 或使用硬件钱包
cast send ... --ledger

经验法则: 如果 grep -r "0x[a-fA-F0-9]{64}" . 在源代码中匹配任何内容,您就有问题。同样适用于 grep -r "g.alchemy.com/v2/[A-Za-z0-9]" 或任何嵌入API密钥的RPC URL。

AI代理的关键护栏

密钥安全规则

  1. 永远不要在没有明确人类许可的情况下提取任何钱包的私钥。
  2. 永远不要将私钥存储在: 聊天日志、纯文本文件、共享环境中的环境变量、Git仓库、未加密的数据库中。
  3. 永远不要在没有人类确认的情况下移动资金。 显示:金额、目的地(校验和)、Gas成本、作用。等待明确的“是”。
  4. 除非人类明确选择CLI/脚本,否则优先使用钱包的原生UI进行签名。
  5. 使用专用钱包,资金有限 用于代理操作。永远不要使用人的主钱包。
  6. 双重检查地址。 使用 ethers.getAddress() 或等效方法进行校验和验证。一个错误的字符 = 永久丢失。
  7. 先在测试网上测试。 或使用本地Anvil分叉。
  8. 实施支出限制。 超过阈值时需要人类批准。对高价值操作使用Safe多签。
  9. 记录所有交易(永远不要记录密钥)。 保持审计跟踪。
  10. 假设密钥会被泄露。 设计使得泄露的代理密钥不意味着总损失。

存储选项(从最差到最佳)

❌ 代码/日志中的纯文本——永远不要 ❌ 共享环境中的环境变量——永远不要 ❌ 提交到Git——永远不要 ⚠️ 本地 .env 文件——仅用于测试 ✅ 加密密钥库(密码保护) ✅ 硬件钱包/云KMS/TEE

安全交易模式

async function sendSafely(wallet, to, value) {
  const checksummedTo = ethers.getAddress(to); // 验证
  const gasEstimate = await wallet.estimateGas({ to: checksummedTo, value });
  const feeData = await wallet.provider.getFeeData();
  const gasCost = gasEstimate * feeData.maxFeePerGas;
  const totalCostUSD = Number(ethers.formatEther(value + gasCost)) * 1960;
  
  if (totalCostUSD > 10) {
    // 显示详情并等待人类批准
  }
  
  const tx = await wallet.sendTransaction({
    to: checksummedTo,
    value,
    gasLimit: gasEstimate * 120n / 100n, // 20% 缓冲
    maxFeePerGas: feeData.maxFeePerGas,
    maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,
  });
  
  const receipt = await tx.wait();
  logTransaction({ hash: tx.hash, to: checksummedTo, value, block: receipt.blockNumber });
  return receipt;
}

进一步阅读