Définition
UserOperation : définition
Aussi appelé : UserOp
Une UserOperation, ou UserOp, est une pseudo-transaction définie par le standard ERC-4337 : elle décrit ce qu'un portefeuille smart contract veut exécuter, puis un bundler la regroupe avec d'autres et la soumet au contrat EntryPoint dans une transaction normale.
Thème : Ethereum et smart contracts
Sur Ethereum, seules les adresses contrôlées par une clé privée peuvent lancer une transaction. ERC-4337 contourne cette limite sans modifier le protocole : l'utilisateur d'un smart contract wallet signe une UserOperation, un objet qui contient notamment l'adresse du compte, l'appel à effectuer, un nonce, les limites de gas et une signature dont le format est libre. Cet objet est envoyé dans un mempool alternatif dédié, et non dans le mempool classique.
Des acteurs appelés bundlers collectent ces UserOps, les vérifient par simulation, puis les soumettent en lot au contrat EntryPoint. Celui-ci demande au compte de valider la signature selon ses propres règles, puis exécute l'opération. Un paymaster peut éventuellement payer le gas à la place de l'utilisateur, ou l'accepter dans un autre token. C'est ce qui permet des fonctions comme la récupération sociale, les clés de session ou les transactions sans ETH.
Un exemple concret
Alice utilise un portefeuille smart contract qui accepte une signature par empreinte biométrique de son téléphone. Elle veut acheter un NFT. Son application crée une UserOp, la signe avec cette clé, et l'envoie à un bundler. Le bundler l'intègre dans une transaction vers l'EntryPoint, et un paymaster de l'application prend en charge les frais.
Les risques à connaître
Les UserOps dépendent de l'infrastructure ERC-4337 : bundlers, paymasters et contrats EntryPoint. Une faille dans la logique de validation du compte peut permettre à un tiers de faire exécuter des opérations. Les portefeuilles smart contract restent plus récents et moins éprouvés que les comptes classiques.
Questions fréquentes sur UserOperation
Une UserOperation est-elle une vraie transaction ?
Pas directement. C'est une demande signée qui ne devient effective qu'une fois incluse par un bundler dans une transaction Ethereum adressée au contrat EntryPoint.
Qui paie le gas d'une UserOperation ?
Par défaut, le compte smart contract de l'utilisateur rembourse le bundler. Un paymaster peut toutefois prendre ces frais en charge ou les accepter dans un autre token.