MetaMask 推出基于 ERC-7715 标准的高级权限(Advanced Permissions)功能,允许用户通过一次性签名授予 DApp 在特定资产、额度及时间范围内的执行权限。该方案结合了智能合约账户与会话账户技术,有效解决了频繁签名疲劳问题,支持定投、自动订阅及 AI 代理等自动化链上场景。
授予 dapps 有作用域限制的、有时间限制的访问权限,使其代表用户执行操作,无需额外签名、独立钱包或权衡托管风险。
我们新推出的高级权限 (Advanced Permissions)——基于 ERC-7715 并作为 MetaMask Smart Accounts Kit 的一部分——允许用户在单次交互中准确批准 dapp 可以执行的操作。你的 dapp 通过会话账户 (session account) 在该作用域内执行。用户的钱包仍由其掌控。
订阅、DCA、AI Agent、归属 (vesting)、自动复利:如果你一直在等待一种标准的方法来构建这些功能,而无需拼凑各种变通方案,那么这就是你需要的。

从历史上看,加密钱包遵循一种简单的交互模型,其中每笔交易都需要显式的用户签名。这意味着重复的弹窗、应用与钱包之间的切换以及授权疲劳。随着时间的推移,用户开始习惯性地在不阅读内容的情况下批准请求,这与知情同意背道而驰。
此前也没有标准的方法让 dapp 向钱包请求有作用域限制的权限。如果没有这种方法,整个产品类别——订阅、AI Agent、有时间限制的访问——仍然难以或无法很好地构建。
嵌入式钱包解决了一些摩擦,但它们引入了不同的权衡。用户最终在每个 dapp 中都有独立的余额,需要跨多个地址注资和管理资产。体验变得更加碎片化。
高级权限采取了不同的方法:一个钱包,有作用域限制的访问。
高级权限允许用户授予 dapp 代表其执行特定、受限操作的能力,而无需放弃完整的钱包访问权限或为每笔交易签名。
以下是协议层面的运作方式:
wallet_requestExecutionPermissions,向用户的 MetaMask 钱包请求一个有作用域限制的权限。例如,用户可以为 AI Agent 设置一个 DCA 策略,在 30 天内每天花费最多 10 USDC 购买 ETH。用户无需每天为每笔交易签名,而是通过 MetaMask 批准单个有作用域限制的权限。
该界面在批准前清晰地列出了条款、资产、金额和时长。一旦授予,应用程序就可以在定义的限制范围内代表用户执行交易。

ERC-7715 定义了应请求权限的规范和标准,以及应应用于这些权限的规则。
Smart Accounts Kit 在此基础上提供了四种实现层面的权限类型:
| 类别 | 权限类型 | 功能 | 示例用例 |
|---|---|---|---|
| 周期性 | erc20-token-periodic, native-token-periodic |
每个周期的 Token 转账限额;每个周期重置 | 订阅、DCA 策略、循环 Gas 预算 |
| 流式 | erc20-token-stream, native-token-stream |
具有可配置起始时间、速率和上限的线性流式额度 | 归属 (Vesting)、持续支付、渐进式解锁 |
| 撤销 | erc20-revocation |
允许 dapp 代表用户撤销 ERC-20 Token 授权 | 清理陈旧或有风险的 approve 额度 |
每种权限类型都接受相应的参数,包括有效期、人类可读的权限理由以及 isAdjustmentAllowed。请参阅高级权限参考文档以获取完整的 schema。
高级权限将模型从重复批准转变为基于意图的执行:用户一次性定义有作用域限制的权限,操作将在一段时间内在该作用域内执行。
erc20-token-periodic 或 native-token-periodic 权限,并设置与你的计费或执行周期匹配的 periodDuration。startTime 和 expiry 参数,支持归属计划 (vesting schedules)、计划执行或会话内游戏操作等用例。结合流式权限进行 Token 的渐进式释放。高级权限通过 Smart Accounts Kit 的智能合约在链上强制执行。在实践中这意味着:
isAdjustmentAllowed: true,用户可以在批准前修改参数(例如,减少金额或缩短时长)。wallet_requestExecutionPermissions 的完整提案。Smart Accounts Kit 的限制执行器 (caveat enforcers) 会在链上验证每一次执行。如果会话账户尝试执行超出授予范围的操作,交易将被拒绝。
会话密钥授予临时的、有作用域限制的访问权限,以代表用户执行操作,但链路到此为止。受托人在固定边界内操作,直到会话过期。
高级权限在两个方面更进一步:
会话密钥是单跳的、预验证的访问。高级权限增加了执行后验证和链式委托;如果你正在构建 Agent 工作流、Solver 架构或任何需要在链上进行多方协调的内容,这就是关键的区别。
是的,如果权限请求包含 isAdjustmentAllowed: true。MetaMask UI 允许用户在批准前调整金额、时长、到期时间和开始时间等参数。
用户可以随时通过 MetaMask 直接撤销任何活动权限。
高级权限需要 MetaMask 智能账户 (Smart Account)。如果用户的账户尚未升级,高级权限流程将在继续之前自动提示他们升级到智能账户。要了解如何将 MetaMask EOA 切换为智能账户,请参阅我们的 MetaMask 支持指南。
approve() 有什么不同?ERC-20 授权授予合约地址无限(或固定金额)的消费权,没有时间限制、没有周期性限制,也没有人类可读的上下文。高级权限按资产、金额、时间窗口和转账模式进行作用域限制,并在批准前以通俗易懂的语言显示给用户。
由于设计上的局限性,ERC-20 授权面临更大的智能合约漏洞利用和授权黑客攻击风险。
任何支持 EIP-7702 的链都可以用于测试高级权限,包括:
请查看 Smart Accounts Kit 文档以获取有关网络支持的最新详情。
不需要,授予高级权限是 ERC-712 签名,而不是链上交易。这也让 dapp 能够为用户抽象出 Gas 成本。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!