控制沙盒化 MetaMask 浏览器扩展钱包,实现自主区块链交易。支持可配置的权限防护栏,包括支出限额、链白名单、协议限制和审批阈值。仅支持 MetaMask(不支持其他钱包)。
MetaMask Agent 钱包技能是一项面向实际任务的技能,主要用于控制一个沙盒的MetaMask钱包, 用于可配置权限的屏蔽链交易;Overview. 此技能允许 AI 代理交互。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
控制一个沙箱化的 MetaMask 钱包,以实现自主区块链交易,并支持可配置的权限防护机制。
该技能允许 AI 代理通过专用 MetaMask 钱包与 dapp 交互并执行交易。所有操作均受用户定义的约束限制(如支出限额、协议白名单、审批阈值等)。
安全模型: 代理在隔离的浏览器配置文件中控制一个独立的钱包。请勿使用您的主钱包。
cd metamask-agent-skill
npm install
npx playwright install chromium
npm run setup
该命令将执行以下操作:
~/.agent-wallet/chrome-profile 创建全新的 Chrome 配置文件向您的代理钱包转入少量资产:
编辑 permissions.json 文件以设定您的约束条件:
{
"constraints": {
"spendLimit": {
"daily": "50000000", // $50,采用六位小数格式
"perTx": "10000000" // 单笔交易最高 $10
},
"allowedChains": [1, 137, 42161],
"allowedProtocols": ["0x...uniswap", "0x...1inch"]
}
}
connect
导航至指定 dapp 并连接代理钱包。
示例: connect https://app.uniswap.org
swap for [on ]
在允许的 DEX 上执行代币兑换。
示例: swap 0.01 ETH for USDC on uniswap
send to
向指定地址发送代币(须在支出限额范围内)。
示例: send 10 USDC to 0x1234...
sign
对任意消息进行签名。请谨慎使用。
balance [token]
返回钱包余额信息。
history [count]
显示最近的代理交易及其结果。
所有操作在执行前均会校验 permissions.json 中的配置:
| 约束项 | 说明 |
|---|---|
spendLimit.daily |
每 24 小时周期内最大美元价值限额 |
spendLimit.perTx |
单笔交易最大美元价值限额 |
allowedChains |
已启用的链 ID 白名单 |
allowedProtocols |
已启用的合约地址白名单 |
blockedMethods |
禁止调用的函数选择器(function selector) |
requireApproval.above |
触发人工确认所需的金额阈值 |
当某笔交易超出 requireApproval.above 设定的阈值时:
permissions.json 中设置 "revoked": true 可禁用全部操作所有交易均记录至 ~/.agent-wallet/logs/ 目录下:
{
"timestamp": 1706900000000,
"action": "swap",
"intent": { "to": "0x...", "value": "0", "data": "0x..." },
"guardResult": { "allowed": true },
"outcome": "confirmed",
"txHash": "0x..."
}
可使用 history 命令查看近期交易。
请将对应合约地址添加至 permissions.json 中的 allowedProtocols 字段。
请等待 24 小时,或提高 spendLimit.daily 的数值。
请确认浏览器配置文件路径正确,且 MetaMask 已成功安装。
dapp 可能尝试调用了被阻止的方法,或目标链不受支持。
src/
├── index.ts # 主入口文件
├── browser.ts # Playwright 浏览器管理模块
├── wallet.ts # MetaMask 交互基础能力
├── guard.ts # 权限强制执行逻辑
├── logger.ts # 交易日志记录模块
├── price.ts # USD 价格估算模块
├── types.ts # TypeScript 类型定义
└── config.ts # 配置加载模块
当 Gator 账户功能上线后,permissions.json 可替换为链上权限证明(on-chain permission attestations)。此时权限守卫(guard)将依据 Gator 的权限注册表(permission registry)进行校验,而非本地配置文件。