跳到内容

高级权限功能介绍

授予 dapp 有范围、有时限的访问权限,代表用户执行操作,无需额外签名、独立钱包或托管妥协。

5 分钟
高级权限功能介绍

我们新推出的高级权限——基于 ERC-7715 构建,是 MetaMask 智能账户套件的组成部分——让用户只需一次交互,即可精确授权 dapp 的操作范围。您的 dapp 通过会话账户在该范围内执行操作,用户的钱包始终由其自主掌控。

订阅服务、定投策略(DCA)、AI 智能体、归属计划、自动复利——如果您一直在等待一种标准化方式来构建这些功能,而无需拼凑各种变通方案,那么它来了。

我们为何构建高级权限

加密钱包历来遵循一种简单的交互模式:每笔交易都需要用户明确签名。这意味着反复弹出确认窗口、在应用与钱包之间来回切换,以及由此产生的授权疲劳。久而久之,用户开始习惯性地不加阅读就批准请求,这与知情同意的初衷背道而驰。

此外,也没有标准方式供 dapp 向钱包请求范围化权限。缺乏这一标准,整个产品类别——订阅服务、AI 智能体、限时访问——要么难以构建,要么根本无法良好实现。

嵌入式钱包解决了部分摩擦,但也引入了新的权衡。用户最终在每个 dapp 中拥有独立余额,需要在多个地址之间分散管理资产,体验变得更加碎片化。

高级权限采用了不同的方式:一个钱包,范围化访问。

什么是高级权限?

高级权限允许用户授予 dapp 代表其执行特定、有限操作的能力,无需放弃完整的钱包访问权限,也无需对每笔交易逐一签名。

以下是协议层面的工作原理:

  1. 您的 dapp 调用 wallet_requestExecutionPermissions,向用户的 MetaMask 钱包请求范围化权限。

  2. MetaMask 显示一个人类可读的授权界面,清晰展示所请求的内容:资产、金额、有效期及相关限制条件。

  3. 用户查看请求,可选择调整参数(如果您的请求允许),然后批准。

  4. 您的 dapp 通过会话账户在已授权范围内执行操作。会话账户是一个专用账户(EOA 或智能账户),由您的 dapp 创建并控制。会话账户不持有用户资金,而是通过 ERC-7710 委托机制兑换权限,在规定限额内直接从用户的 MetaMask 账户执行交易。

举例来说,用户可以为 AI 智能体设置一个定投策略:每天最多使用 10 USDC 购买 ETH,持续 30 天。用户无需每天签署每笔交易,只需通过 MetaMask 一次性批准一个范围化权限即可。

授权前,界面会清晰列明条款、资产、金额和有效期。授权后,应用即可在规定限额内代表用户执行交易。

支持的权限类型

ERC-7715 定义了权限请求的规范与标准,以及适用于这些权限的规则。

智能账户套件在此基础上提供了四种实现层面的权限类型:

类别

权限类型

功能说明

示例用例

周期性

erc20-token-periodic、native-token-periodic

按周期设定代币转账限额,每个周期重置

订阅服务、定投策略、周期性 Gas 预算

流式

erc20-token-stream、native-token-stream

可配置起始时间、速率和上限的线性流式限额

归属计划、持续支付、渐进式解锁

撤销

erc20-revocation

允许 dapp 代表用户撤销 ERC-20 代币授权

清理过期或存在风险的授权额度

每种权限类型均接受相应参数,包括到期时间、人类可读的权限说明以及 isAdjustmentAllowed。完整的数据结构请参阅高级权限参考文档。

您可以构建什么

高级权限将模式从反复授权转变为基于意图的执行:用户一次性定义范围化权限,后续操作在该范围内持续执行。

  1. 自动化与周期性流程: 订阅服务、定投策略和自动复利可在一次性授权后持续运行。将这些场景映射到 erc20-token-periodic 或 native-token-periodic 权限,并设置与您的计费或执行周期相匹配的 periodDuration。

  2. 基于智能体的执行: AI 智能体可在用户定义的边界内进行交易、再平衡或执行其他操作。智能体控制会话账户的密钥,并通过委托机制执行——用户的主钱包始终不会暴露,智能体只能在已授权范围内操作,无需单独为钱包充值。

  3. 限时访问: 权限支持 startTime 和 expiry 参数,适用于归属计划、定时执行或游戏内会话操作等场景。结合流式权限可实现代币的渐进式释放。

高级权限安全模型

高级权限通过智能账户套件的智能合约在链上强制执行。以下是实际意义:

  • 范围化设计: 每个权限精确定义会话账户可访问的内容:资产、金额、时间窗口和转账类型。委托框架的条件执行器会拒绝任何超出范围的执行请求。

  • 人类可读的授权界面: MetaMask 在用户授权前显示包含完整权限参数的详细确认界面。

  • 用户可调整: 如果您的权限请求将 isAdjustmentAllowed 设置为 true,用户可在批准前修改参数(例如减少金额或缩短有效期)。

  • 可撤销: 用户可随时通过 MetaMask 的"Dapp 连接"选项撤销任何有效权限。

  • 会话账户不持有资金: 执行通过从用户智能账户兑换委托来完成。会话账户是一个签名密钥,而非资产托管点。

准备好开始构建了吗?立即在智能账户套件中使用高级权限。


高级权限相关资源

关于高级权限的常见问题

AI 翻译。可能包含错误。请务必核实信息。

评价此翻译

本文作者:

  • Ayush Bherwani

      Ayush Bherwani 是 MetaMask 的高级开发者关系经理。

      阅读所有文章