
Ayush Bherwani는 MetaMask의 시니어 Developer Relations 매니저입니다.
모든 글 읽기사용자를 대신해 실행할 수 있도록 dapp에 범위 지정된 시간 제한 액세스를 부여하세요. 추가 서명, 별도 지갑, 또는 수탁 절충 없이 가능합니다.

새롭게 출시된 Advanced Permissions는 ERC-7715를 기반으로 구축되었으며 MetaMask Smart Accounts Kit의 일부로, 사용자가 단 한 번의 상호작용으로 dapp이 수행할 수 있는 작업을 정확하게 승인할 수 있도록 합니다. dapp은 세션 계정을 통해 해당 범위 내에서 실행되며, 사용자의 지갑은 사용자가 직접 제어합니다.
구독, DCA, AI 에이전트, 베스팅, 자동 복리: 임시방편을 이어 붙이지 않고도 이러한 기능을 구축할 수 있는 표준적인 방법을 기다려왔다면, 바로 이것입니다.
크립토 지갑은 역사적으로 모든 트랜잭션에 사용자의 명시적인 서명이 필요한 단순한 상호작용 모델을 따랐습니다. 이는 반복적인 팝업, 앱과 지갑 간의 전환, 그리고 승인 피로감을 초래했습니다. 시간이 지나면서 사용자들은 요청 내용을 읽지 않고 습관적으로 승인하기 시작했는데, 이는 정보에 기반한 동의와는 정반대의 결과였습니다.
또한 dapp이 지갑에 범위가 지정된 권한을 요청할 수 있는 표준적인 방법도 없었습니다. 이러한 표준이 없다 보니 구독, AI 에이전트, 시간 제한 접근 등 전체 제품 카테고리를 제대로 구축하기가 어렵거나 불가능했습니다.
임베디드 지갑이 이러한 마찰 중 일부를 해결했지만, 다른 트레이드오프를 초래했습니다. 사용자들은 dapp마다 별도의 잔액을 갖게 되었고, 여러 주소에 걸쳐 자산을 입금하고 관리해야 했습니다. 이로 인해 경험이 더욱 분산되었습니다.
Advanced Permissions는 다른 접근 방식을 취합니다: 하나의 지갑, 범위가 지정된 접근.
Advanced Permissions를 통해 사용자는 전체 지갑 접근 권한을 포기하거나 모든 트랜잭션에 서명하지 않고도, dapp이 자신을 대신하여 특정하고 제한된 작업을 수행할 수 있는 권한을 부여할 수 있습니다.
프로토콜 수준에서의 작동 방식은 다음과 같습니다:
dapp이 wallet_requestExecutionPermissions를 호출하여 사용자의 MetaMask 지갑에 범위가 지정된 권한을 요청합니다.
MetaMask는 요청된 내용을 정확하게 보여주는 사람이 읽을 수 있는 승인 화면을 표시합니다: 자산, 금액, 기간 및 모든 제약 조건.
사용자가 검토하고, 선택적으로 매개변수를 조정한 후(요청이 허용하는 경우) 승인합니다.
dapp은 세션 계정을 통해 부여된 범위 내에서 실행됩니다. 세션 계정은 dapp이 생성하고 제어하는 전용 계정(EOA 또는 스마트 계정)입니다. 세션 계정은 사용자 자금을 보유하지 않습니다. ERC-7710 위임을 통해 권한을 행사하며, 정의된 한도 내에서 사용자의 MetaMask 계정으로부터 직접 트랜잭션을 실행합니다.
예를 들어, 사용자는 AI 에이전트가 30일 동안 하루 최대 10 USDC를 사용하여 ETH를 구매하는 DCA 전략을 설정할 수 있습니다. 매일 각 트랜잭션에 서명하는 대신, 사용자는 MetaMask를 통해 단 한 번의 범위가 지정된 권한을 승인합니다.
인터페이스는 승인 전에 조건, 자산, 금액 및 기간을 명확하게 설명합니다. 권한이 부여되면 애플리케이션은 정의된 한도 내에서 사용자를 대신하여 트랜잭션을 실행할 수 있습니다.

ERC-7715는 요청해야 하는 권한의 사양과 표준, 그리고 이러한 권한에 적용되어야 하는 규칙을 정의합니다.
Smart Accounts Kit는 네 가지 구현 수준의 권한 유형으로 이를 확장합니다:
카테고리 | 권한 유형 | 기능 | 사용 사례 예시 |
주기적(Periodic) | erc20-token-periodic, native-token-periodic | 토큰 전송에 대한 기간별 허용량; 각 기간마다 초기화 | 구독, DCA 전략, 반복 가스 예산 |
스트리밍(Streaming) | erc20-token-stream, native-token-stream | 시작, 속도 및 한도를 구성할 수 있는 선형 스트리밍 허용량 | 베스팅, 지속적 결제, 점진적 잠금 해제 |
취소(Revocation) | erc20-revocation | dapp이 사용자를 대신하여 ERC-20 토큰 승인을 취소할 수 있도록 허용 | 오래되거나 위험한 승인 허용량 정리 |
각 권한 유형은 만료, 사람이 읽을 수 있는 권한 정당성, 그리고 isAdjustmentAllowed와 함께 각각의 매개변수를 허용합니다. 전체 스키마는 Advanced Permissions 참조 문서를 참조하세요.
Advanced Permissions는 반복적인 승인에서 의도 기반 실행으로 모델을 전환합니다: 사용자가 한 번 범위가 지정된 권한을 정의하면, 작업이 시간이 지남에 따라 해당 범위 내에서 수행됩니다.
자동화 및 반복 흐름: 구독, DCA 전략, 자동 복리는 일회성 승인 후 실행될 수 있습니다. 청구 또는 실행 주기에 맞는 periodDuration을 사용하여 erc20-token-periodic 또는 native-token-periodic 권한에 매핑하세요.
에이전트 기반 실행: AI 에이전트는 사용자가 정의한 경계 내에서 거래, 리밸런싱 또는 작업을 수행할 수 있습니다. 에이전트는 세션 계정의 키를 제어하고 위임을 통해 실행합니다—사용자의 메인 지갑은 노출되지 않으며, 에이전트는 부여된 범위 내에서만 작동할 수 있습니다. 별도의 지갑 자금 조달이 필요하지 않습니다.
시간 제한 접근: 권한은 startTime 및 expiry 매개변수를 허용하여 베스팅 일정, 예약 실행 또는 인세션 게임 작업과 같은 사용 사례를 지원합니다. 점진적인 토큰 릴리스를 위해 스트리밍 권한과 결합하세요.
Advanced Permissions는 Smart Accounts Kit의 스마트 컨트랙트를 통해 온체인에서 적용됩니다. 실제로 이것이 의미하는 바는 다음과 같습니다:
설계에 의한 범위 지정: 각 권한은 세션 계정이 접근할 수 있는 것을 정확하게 정의합니다: 자산, 금액, 시간 창, 전송 유형. Delegation Framework의 caveat enforcer는 범위를 벗어난 모든 실행을 거부합니다.
사람이 읽을 수 있는 승인: MetaMask는 사용자가 권한을 부여하기 전에 전체 권한 매개변수를 보여주는 풍부한 확인 UI를 표시합니다.
사용자 조정 가능: 권한 요청에서 isAdjustmentAllowed: true로 설정하면, 사용자는 승인 전에 매개변수를 수정할 수 있습니다(예: 금액 감소 또는 기간 단축).
취소 가능: 사용자는 MetaMask의 Dapp 연결 옵션을 통해 언제든지 활성 권한을 취소할 수 있습니다.
세션 계정은 자금을 보유하지 않음: 실행은 사용자의 스마트 계정으로부터의 위임 행사를 통해 이루어집니다. 세션 계정은 서명 키이며, 보관 지점이 아닙니다.
Advanced Permissions 개발자 문서: ERC-7715와 ERC-7710이 함께 작동하는 방식과 Advanced Permissions가 일반 위임과 어떻게 다른지 알아보세요.
MetaMask 사용자를 대신하여 실행 수행하기: 세션 계정을 설정하고, 권한을 요청하고, 이를 행사하세요.
Scaffold-ETH 2용 Advanced Permissions (ERC-7715) 확장: 작동하는 예제가 포함된 드롭인 스타터 프로젝트를 살펴보세요.
ERC-7715 사양: wallet_requestExecutionPermissions에 대한 전체 제안을 읽어보세요.
AI가 번역했습니다. 오류가 있을 수 있습니다. 항상 정보를 확인하시기 바랍니다.