
Ayush Bherwani est Senior Developer Relations manager chez MetaMask.
Lire tous les articlesAccordez aux dapps un accès délimité et limité dans le temps pour agir au nom des utilisateurs, sans signatures supplémentaires, portefeuilles séparés ni compromis de garde.

Nos nouvelles Advanced Permissions—basées sur ERC-7715 et intégrées au MetaMask Smart Accounts Kit—permettent aux utilisateurs d'approuver exactement ce qu'une dapp peut faire en une seule interaction. Votre dapp s'exécute dans ce périmètre via un compte de session. Le portefeuille de l'utilisateur reste sous son contrôle.
Abonnements, DCA, agents IA, vesting, auto-compounding : si vous attendiez une méthode standard pour développer ces fonctionnalités sans bricoler des solutions de contournement, la voici.
Les portefeuilles crypto ont historiquement suivi un modèle d'interaction simple où chaque transaction nécessitait une signature explicite de l'utilisateur. Cela entraînait des pop-ups répétitifs, des allers-retours entre l'application et le portefeuille, et une fatigue des approbations. Avec le temps, les utilisateurs ont pris l'habitude d'approuver les demandes sans les lire, à l'opposé d'un consentement éclairé.
Il n'existait par ailleurs aucune méthode standard permettant à une dapp de demander des permissions limitées à un portefeuille. Sans cela, des catégories entières de produits—abonnements, agents IA, accès limités dans le temps—restaient difficiles, voire impossibles à développer correctement.
Les embedded wallets ont résolu une partie de ces frictions, mais ont introduit un autre compromis. Les utilisateurs se sont retrouvés avec des soldes distincts par dapp, devant financer et gérer des actifs sur plusieurs adresses. L'expérience est devenue plus fragmentée.
Les Advanced Permissions adoptent une approche différente : un seul portefeuille, un accès limité.
Les Advanced Permissions permettent aux utilisateurs d'accorder à une dapp la capacité d'effectuer des actions spécifiques et limitées en leur nom, sans céder l'accès complet à leur portefeuille ni signer chaque transaction.
Voici comment cela fonctionne au niveau du protocole :
Votre dapp appelle wallet_requestExecutionPermissions, demandant une permission limitée au portefeuille MetaMask de l'utilisateur.
MetaMask affiche un écran d'approbation lisible par l'utilisateur, indiquant exactement ce qui est demandé : l'actif, le montant, la durée et les éventuelles contraintes.
L'utilisateur examine la demande, ajuste optionnellement les paramètres (si votre demande le permet), puis approuve.
Votre dapp s'exécute dans le périmètre accordé via un compte de session, un compte dédié (EOA ou smart account) que votre dapp crée et contrôle. Le compte de session ne détient jamais les fonds de l'utilisateur. Il utilise les permissions via la délégation ERC-7710, en exécutant les transactions directement depuis le compte MetaMask de l'utilisateur dans les limites définies.
Par exemple, un utilisateur peut configurer une stratégie DCA pour qu'un agent IA dépense jusqu'à 10 USDC par jour pour acheter de l'ETH pendant 30 jours. Au lieu de signer chaque transaction quotidiennement, l'utilisateur approuve une seule permission limitée via MetaMask.
L'interface présente clairement les conditions, l'actif, le montant et la durée avant l'approbation. Une fois accordée, l'application peut exécuter des transactions au nom des utilisateurs dans les limites définies.

ERC-7715 définit les spécifications et les normes pour les permissions à demander, ainsi que les règles à leur appliquer.
Le Smart Accounts Kit s'appuie sur cette base avec quatre types de permissions au niveau de l'implémentation :
Catégorie | Types de permissions | Ce que ça fait | Exemples d'utilisation |
Périodique | erc20-token-periodic, native-token-periodic | Allocation par période pour les transferts de tokens ; se réinitialise à chaque période | Abonnements, stratégies DCA, budgets de gas récurrents |
Streaming | erc20-token-stream, native-token-stream | Allocation en streaming linéaire avec début, taux et plafond configurables | Vesting, paiements continus, déblocages progressifs |
Révocation | erc20-revocation | Permet à une dapp de révoquer les approbations de tokens ERC-20 au nom de l'utilisateur | Nettoyage des autorisations obsolètes ou risquées |
Chaque type de permission accepte des paramètres respectifs avec une expiration, une justification de permission lisible par l'utilisateur, et isAdjustmentAllowed. Consultez la référence des Advanced Permissions pour le schéma complet.
Les Advanced Permissions font évoluer le modèle des approbations répétées vers une exécution basée sur l'intention : un utilisateur définit des permissions limitées une seule fois, et les actions sont exécutées dans ce périmètre au fil du temps.
Flux automatisés et récurrents : Les abonnements, les stratégies DCA et l'auto-compounding peuvent fonctionner après une approbation unique. Associez-les aux permissions erc20-token-periodic ou native-token-periodic avec un periodDuration correspondant à votre cycle de facturation ou d'exécution.
Exécution par agents : Les agents IA peuvent trader, rééquilibrer ou effectuer des actions dans les limites définies par l'utilisateur. L'agent contrôle la clé du compte de session et s'exécute via la délégation—le portefeuille principal de l'utilisateur n'est jamais exposé, et l'agent ne peut opérer que dans le périmètre accordé. Aucun financement de portefeuille séparé n'est requis.
Accès limité dans le temps : Les permissions acceptent les paramètres startTime et expiry, prenant en charge des cas d'usage tels que les calendriers de vesting, les exécutions planifiées ou les actions en jeu en cours de session. Combinez avec les permissions de streaming pour des déblocages progressifs de tokens.
Les Advanced Permissions sont appliquées onchain via les Smart Contracts du Smart Accounts Kit. Voici ce que cela signifie en pratique :
Limité par conception : Chaque permission définit exactement ce à quoi le compte de session peut accéder : actif, montant, fenêtre temporelle et type de transfert. Les caveat enforcers du Delegation Framework rejettent toute exécution hors périmètre.
Approbation lisible par l'utilisateur : MetaMask affiche une interface de confirmation détaillée présentant l'ensemble des paramètres de permission avant que l'utilisateur n'accorde quoi que ce soit.
Ajustable par l'utilisateur : Si votre demande de permission définit isAdjustmentAllowed: true, les utilisateurs peuvent modifier les paramètres (par exemple, réduire le montant ou raccourcir la durée) avant d'approuver.
Révocable : Les utilisateurs peuvent révoquer toute permission active à tout moment via l'option Connexions aux dapps de MetaMask.
Les comptes de session ne détiennent pas de fonds : L'exécution se fait via la rédemption de délégation depuis le Smart Account de l'utilisateur. Le compte de session est une clé de signature, pas un point de garde.
Documentation développeur des Advanced Permissions : Découvrez comment ERC-7715 et ERC-7710 fonctionnent ensemble, et en quoi les Advanced Permissions se distinguent des délégations classiques.
Effectuer des exécutions au nom d'un utilisateur MetaMask : Configurez un compte de session, demandez des permissions et utilisez-les.
Extension Advanced Permissions (ERC-7715) pour Scaffold-ETH 2 : Explorez un projet de démarrage clé en main avec un exemple fonctionnel.
Spécification ERC-7715 : Lisez la proposition complète pour wallet_requestExecutionPermissions.
Traduit par IA. Peut contenir des erreurs. Veuillez toujours vérifier les informations.