進階權限功能介紹

授予 dapp 有範圍限制、時間限制的執行權限,代表用戶操作,無需額外簽名、獨立錢包或託管妥協。

5 分鐘
進階權限功能介紹

我們最新推出的 Advanced Permissions——基於 ERC-7715 構建,並作為 MetaMask Smart Accounts Kit 的一部分——讓使用者只需一次互動,即可精確授權 dapp 的操作範圍。您的 dapp 透過 session account 在該範圍內執行,使用者的錢包始終由其自行掌控。

訂閱服務、DCA、AI 代理、歸屬解鎖、自動複利:如果您一直在等待一種標準化的方式來構建這些功能,而不必東拼西湊各種變通方案,那麼這就是您要找的解決方案。

為什麼我們要構建 Advanced Permissions

加密貨幣錢包歷來遵循一種簡單的互動模式,每筆交易都需要使用者明確簽署。這意味著反覆彈出確認視窗、在應用程式與錢包之間來回切換,以及授權疲勞。久而久之,使用者開始習慣性地在未仔細閱讀的情況下批准請求,這與知情同意的初衷背道而馳。

此外,也沒有標準化的方式讓 dapp 向錢包請求範圍限定的權限。缺乏這樣的標準,整個產品類別——訂閱服務、AI 代理、限時存取——都難以妥善構建,甚至根本無法實現。

嵌入式錢包解決了部分摩擦,但也帶來了不同的取捨。使用者最終在每個 dapp 中擁有各自獨立的餘額,需要跨多個地址管理和調撥資產,體驗反而變得更加分散。

Advanced Permissions 採取了不同的方式:單一錢包,範圍限定的存取權限。

什麼是 Advanced Permissions?

Advanced Permissions 讓使用者能夠授予 dapp 代表其執行特定、有限操作的能力,無需放棄完整的錢包存取權限,也無需對每筆交易進行簽署。

以下是協議層面的運作方式:

  1. 您的 dapp 呼叫 wallet_requestExecutionPermissions,向使用者的 MetaMask 錢包請求範圍限定的權限。

  2. MetaMask 顯示一個人類可讀的授權畫面,清楚呈現所請求的內容:資產、金額、期限及任何限制條件。

  3. 使用者審閱後,可選擇性地調整參數(如果您的請求允許),然後批准。

  4. 您的 dapp 透過 session account 在已授予的範圍內執行。Session account 是您的 dapp 所建立並控制的專用帳戶(EOA 或智能帳戶)。Session account 從不持有使用者資金,它透過 ERC-7710 委託機制兌換權限,在定義的限制範圍內直接從使用者的 MetaMask 帳戶執行交易。

舉例來說,使用者可以為 AI 代理設定一個 DCA 策略,授權其在 30 天內每天最多使用 10 USDC 購買 ETH。使用者無需每天簽署每筆交易,只需透過 MetaMask 批准一次範圍限定的權限即可。

介面會在授權前清楚列明條款、資產、金額及期限。一旦授予,應用程式即可在定義的限制範圍內代表使用者執行交易。

支援的權限類型

ERC-7715 定義了應請求的權限規格與標準,以及應套用於這些權限的規則。

Smart Accounts Kit 在此基礎上構建了四種實作層面的權限類型:

類別

權限類型

功能說明

使用案例範例

週期性

erc20-token-periodic、native-token-periodic

代幣轉帳的每期限額;每期重置

訂閱服務、DCA 策略、定期 gas 預算

串流

erc20-token-stream、native-token-stream

可設定起始時間、速率和上限的線性串流限額

歸屬解鎖、持續付款、逐步解鎖

撤銷

erc20-revocation

允許 dapp 代表使用者撤銷 ERC-20 代幣授權

清理過時或有風險的 approve 授權

每種權限類型均接受各自的參數,包含到期時間、人類可讀的權限說明,以及 isAdjustmentAllowed。完整的結構定義請參閱 Advanced Permissions 參考文件

您可以構建的功能

Advanced Permissions 將模式從反覆授權轉變為基於意圖的執行:使用者一次性定義範圍限定的權限,操作便在該範圍內持續執行。

  1. 自動化與定期流程: 訂閱服務、DCA 策略和自動複利可在一次性授權後持續運行。將這些功能對應至 erc20-token-periodic 或 native-token-periodic 權限,並設定符合您計費或執行週期的 periodDuration。

  2. 基於代理的執行: AI 代理可在使用者定義的範圍內進行交易、再平衡或執行操作。代理控制 session account 的金鑰,並透過委託機制執行——使用者的主錢包始終不會暴露,代理只能在已授予的範圍內運作。無需另行為獨立錢包注資。

  3. 限時存取: 權限接受 startTime 和 expiry 參數,支援歸屬時間表、排程執行或遊戲內操作等使用案例。結合串流權限可實現代幣的逐步釋放。

Advanced Permissions 安全模型

Advanced Permissions 透過 Smart Accounts Kit 的智能合約在鏈上強制執行。以下是實際運作的含義:

  • 範圍限定設計: 每個權限精確定義 session account 可存取的內容:資產、金額、時間窗口及轉帳類型。Delegation Framework 的 caveat enforcer 會拒絕任何超出範圍的執行。

  • 人類可讀的授權: MetaMask 在使用者授予任何權限之前,會顯示包含完整權限參數的豐富確認介面。

  • 使用者可調整: 如果您的權限請求設定了 isAdjustmentAllowed: true,使用者可在批准前修改參數(例如,減少金額或縮短期限)。

  • 可撤銷: 使用者可隨時透過 MetaMask 的「Dapp 連線」選項撤銷任何有效權限。

  • Session account 不持有資金: 執行透過使用者 Smart Account 的委託兌換進行。Session account 是一個簽署金鑰,而非資產託管點。

準備好開始構建了嗎?立即在 Smart Accounts Kit 中使用 Advanced Permissions


Additional Advanced Permissions 資源

進階權限常見問題

AI 翻譯。可能包含錯誤。請務必核實資訊。

評價此翻譯
  • Ayush Bherwani
    Ayush Bherwani

      Ayush Bherwani 是 MetaMask 的資深開發者關係經理。

      閱讀所有文章