ALLER AU CONTENU
STANDARDS ETHEREUM7 minComptes intelligents / Ép. 1 · Niveau 1-3

Modules ERC-7579 : que reste-t-il avec l’AA native ?

Disons que votre smart account plafonne les dépenses à 100 USDC par jour. Avec le brouillon EIP-8141, une frame pourrait-elle en envoyer 500 sans que le plafond le voie ?

XIN
Port de nuit en pixel art : une grue soulève des caisses modulaires lumineuses depuis une vieille barge vers un nouveau quai de pierre bâti dans la digue. La plupart des caisses brillent en bleu-vert pendant la traversée ; une caisse éteinte reste sur la barge.

EN 30 SECONDES

Un module ERC-7579 est une extension d’un smart account modulaire. À mon sens, avec le brouillon EIP-8141, la plupart des modules fonctionnent toujours et les validators nécessitent un nouveau point d’entrée. Les hooks, eux, peuvent être contournés, sauf si le compte l’interdit.

À RETENIR · 3

  • À mon sens, avec le brouillon 8141, les executors, les fallback handlers et les vérifications de signature ERC-1271 d’ERC-7579 passent sans changement.
  • À mon sens, les validators nécessitent un nouveau point d’entrée, et leurs réglages doivent résider dans le stockage du compte.
  • Les hooks ne voient que les appels qui passent par le compte. Ma règle : son contrôle y fait passer chaque frame SENDER.
Sur cette page

Ce qui reste des modules ERC-7579 avec l’AA native

EN BREF À mon sens, en partie : executors et fallback handlers passent, les validators exigent un nouveau point d’entrée, les hooks appellent à la prudence.

Le classement ci-dessous est ma lecture du brouillon EIP-8141 du 7 octobre 2026, pas la production.

LES MOTS À CONNAÎTRE

Module
Une extension d’un smart account modulaire selon ERC-7579. Un validator vérifie les signatures, un hook encadre les appels, un executor agit pour le compte.
Hook
Un module qui fait un contrôle avant et après un appel, ou un lot d’appels, passé par les fonctions execute du compte.
Frame transaction
Le type de transaction que propose EIP-8141 : une liste d’appels, les frames. Les frames VERIFY contrôlent, les frames SENDER agissent au nom du compte.

ERC-7579, toujours un brouillon, définit chaque Module Une extension d’un smart account modulaire selon ERC-7579. Un validator vérifie les signatures, un hook encadre les appels, un executor agit pour le compte. Voir le glossaire. Il l’avait anticipé :

« This standard has a strict dependency on ERC-4337 for the validation flow. »

ERC-7579 (brouillon)

Sa validation dépend donc d’ERC-4337. La voie qu’il propose : déplacer cette dépendance dans une extension séparée quand l’abstraction de compte native existera.

Native veut dire intégrée à Ethereum, comme le propose le brouillon EIP-8141 avec la Frame transaction Le type de transaction que propose EIP-8141 : une liste d’appels, les frames. Les frames VERIFY contrôlent, les frames SENDER agissent au nom du compte. Voir le glossaire. Ci-dessous, je range un compte modulaire comme Nexus face à ce brouillon.

ÉTAPE PAR ÉTAPE

Diagramme en couches : 6 niveaux, de haut en basDiagramme en couches : 6 niveaux, de haut en bas. Niveau 1, VÉRIFICATEURS DE SIGNATURE : Contrôle principal : nouveau point d’entrée, Contrôles pour les applis : inchangés, Réglages dans le module : refusés par le mempool public. Niveau 2, GARDES D’APPEL : Encadrent les appels du compte, Contournés par une frame directe. Niveau 3, AIDES QUI AGISSENT : Appel ordinaire : inchangé. Niveau 4, FONCTIONS EN PLUS : Routage : inchangé. Niveau 5, STOCKAGE : Les espaces de noms ERC-7201 passent. Niveau 6, PLOMBERIE 4337 : Dépôts, caution, hash de demande : aucun rôle.VÉRIFICATEURS DE SIGNATUREContrôle principal : nouveaupoint d’entréeContrôles pour les applis :inchangésRéglages dans le module :refusés par le mempoolpublicGARDES D’APPELEncadrent les appels ducompteContournés par une framedirecteAIDES QUI AGISSENTAppel ordinaire : inchangéFONCTIONS EN PLUSRoutage : inchangéSTOCKAGELes espaces de noms ERC-7201passentPLOMBERIE 4337Dépôts, caution, hash dedemande : aucun rôle
Validators (type 1). validateUserOp prend une PackedUserOperation ; isValidSignatureWithSender (ERC-1271) est inchangé. Hooks (type 4) : preCheck et postCheck autour d’execute et d’executeFromExecutor. Executors (type 2), via executeFromExecutor. Fallback handlers (type 3) : ils répondent aux appels que le compte ne reconnaît pas.

Étape 1. Validators. Le contrôle principal demande un nouveau point d’entrée. Les vérifications de signature pour les autres applis restent.

Choisissez une étape pour la voir bouger
  1. Validators Le contrôle principal demande un nouveau point d’entrée. Les vérifications de signature pour les autres applis restent.
  2. Hooks Ils encadrent les appels qui passent par le compte : une frame directe les contourne.
  3. Executors et handlers Des appels ordinaires : inchangés.
  4. Stockage et plomberie Le stockage à espaces de noms passe ; dépôts et caution 4337 n’ont plus de rôle.
Mon classement d’un compte ERC-7579 face à EIP-8141 tel que rédigé au 7 octobre 2026 (brouillon : il peut changer). La couche mise en avant est celle que touche la réécriture.

Ce sont les validators qu’il faut réécrire : gardez la logique de signature, remplacez le point d’entrée qui l’entoure. Leur validateUserOp prend une PackedUserOperation et son hash (une empreinte courte), et une frame transaction n’a ni l’un ni l’autre. Le code VERIFY du compte lit le hash de signature via un nouvel opcode, TXPARAM, puis termine par APPROVE.

ATTENTION

Vérifiez où chaque validator garde ses réglages. Des propriétaires stockés dans une table du validator sont hors du stockage de l’émetteur, ce que refuse le mempool public du brouillon. Gardez-les dans le stockage à espaces de noms du compte, atteint par DELEGATECALL (le module agit sur le stockage du compte).

Ce stockage ERC-7201 à espaces de noms, c’est ce que nous utilisions sur Nexus, pour une autre raison : des mises à niveau sûres.

Un exemple concret : un plafond qu’une frame peut contourner

EN BREF Un hook ne s’exécute que si l’appel passe par le compte, et une frame peut viser directement le token.

UN EXEMPLE CONCRET

Chiffres illustratifs

VALIDÉUn plafond quotidien appliqué par un hook, appel routé par le compte

ENTRÉE

Compte
compte ERC-7579 avec un hook de plafond
Plafond
100 USDC par jour
Frame
frame du compte vers le compte : envoyer 80 USDC

CE QUI SE PASSE

  1. La frame appelle la fonction execute du compte.
  2. Le hook contrôle d’abord : 80 USDC, sous le plafond.

SORTIE

Résultat
transfert exécuté, plafond respecté

CONTOURNÉMême compte, une frame envoyée directement vers le token

ENTRÉE

Frame
frame du compte vers le token : envoyer 500 USDC

CE QUI SE PASSE

  1. Le token voit le compte comme appelant.
  2. execute ne s’exécute pas, donc le hook non plus.

SORTIE

Résultat
500 USDC partent, plafond jamais vérifié

Le brouillon nomme le problème de fond : une fois l’exécution approuvée, « every subsequent SENDER frame executes with caller set to tx.sender ».

EN CLAIR

Une fois l’exécution approuvée, chaque frame SENDER suivante agit au nom de votre compte, pas seulement celle que vous visiez.

Ma règle : soit le code VERIFY exige que chaque frame SENDER vise le compte et appelle une fonction autorisée qui déclenche les Hook Un module qui fait un contrôle avant et après un appel, ou un lot d’appels, passé par les fonctions execute du compte. Voir le glossaire, comme execute, soit il inspecte lui-même chaque frame avec FRAMEPARAM et FRAMEDATALOAD.

Vérifier l’adresse seule ne suffit pas : les données de l’appel peuvent viser une autre fonction ou un fallback handler. Dans les deux cas, le code VERIFY vérifie une signature sur le hash canonique, qui couvre toute la liste des frames.

OBJET OBTENU

Contrôler chaque frame SENDER

Le contrôle du compte force chaque frame SENDER à passer par une fonction avec hooks, ou inspecte lui-même chaque frame.

FAQ

Non. ERC-7579 (Minimal Modular Smart Accounts), créé en décembre 2023, est toujours un brouillon, comme EIP-8141. Les deux peuvent changer avant le statut Final.

En partie, d’après ce que j’ai trouvé. Dans le brouillon, l’échéance validUntil correspond à un contrôle d’expiration, fait dans une frame du protocole. Je n’ai pas trouvé d’équivalent pour validAfter.

Sources : ERC-7579 (brouillon), EIP-8141 (brouillon), ERC-4337.

NIVEAU TERMINÉ

Ce que vous savez maintenant

  • Quels types de modules ERC-7579 passent au brouillon 8141, lesquels demandent un nouveau point d’entrée, et pourquoi.
  • Pourquoi une frame qui vise directement une cible peut contourner un hook, et comment le contrôle du compte comble cette faille.

Vérifiez par vous-même

Touchez ou cliquez une question pour voir la réponse.

Un validator garde les propriétaires de chaque compte dans une table de son propre contrat. Le mempool public du brouillon acceptera-t-il une transaction qui la lit ?

Non. La validation ne peut lire que le stockage de l’émetteur, et cette table est dans celui du validator. Déplacez-la dans le stockage à espaces de noms du compte.

Niveau suivant :Qu’est-ce qui peut mal tourner avec une délégation EIP-7702, et que doit vérifier un wallet avant de signer ?7 min
Adam Boudjemaa
Adam Boudjemaa

Ingénieur web3 x IA, ancien CTO d’Integra. Auteur nommé (1 sur 5) d’ERC-3643, premier auteur d’ERC-6960, co-auteur d’ERC-7410 et co-auteur d’ERC-8203, encore à l’état de brouillon.

Un projet à livrer ou un poste à pourvoir ?

Parlons de votre besoin

Mon travail entre web3 et IAMes outils open source

Suivre les notes techniques

Recevez les nouveaux articles sur l’IA en production et les smart contracts par email.