Le MetaMask Delegation Toolkit est le fruit de plusieurs années de recherche visant à créer des outils sécurisés et faciles à utiliser pour l'écosystème web3. La boîte à outils est conçue pour résoudre des problèmes UX majeurs qui freinent l'adoption grand public du web3, et propose des outils permettant d'explorer de nouveaux cas d'usage en matière de coordination sociale. Red Balloon était un jeu de stratégie sociale organisé lors de la conférence EthCC à Bruxelles, du 7 au 9 juillet 2024. Les participants ont pu découvrir pour la première fois dans un jeu web3 un onboarding instantané, une prise en charge des frais de gas économique et des délégations multi-sauts.
L'objectif du défi était de trouver 10 ballons disséminés dans le lieu de la conférence et de remporter 5 ETH en guise de récompense. Cependant, en raison de la distribution géographique et temporelle des ballons, il était impossible pour un seul joueur de les trouver tous les 10 de manière indépendante. Ce jeu s'inspire du DARPA Network Challenge et simule un problème complexe à grande échelle nécessitant une collaboration décentralisée pour être résolu.
La première personne à collecter les 10 ballons et à revendiquer la victoire repartait avec la somme mise en jeu, déduction faite des commissions dues aux joueurs dont les ballons avaient été utilisés pour remporter la partie.
Cette étude de cas explique comment le MetaMask Delegation Toolkit a rendu possible chaque fonctionnalité du jeu Red Balloon.
Scanner pour jouer : l'onboarding web3 instantané
L'une des principales fonctionnalités du MetaMask Delegation Toolkit est la possibilité pour les utilisateurs de contourner le processus habituel de connexion à un portefeuille web3, éliminant ainsi la nécessité d'installer un portefeuille traditionnel ou de se soucier des phrases de récupération.
Pour Red Balloon, les joueurs rejoignent le jeu en scannant un QR code apposé sur un ballon physique ou fourni par un autre joueur déjà inscrit. Cela génère un smart account intégré contrefactuel (gratuit et instantané) dans l'application web du jeu, après quoi ils peuvent commencer à jouer directement, sans avoir à créer ou connecter un portefeuille, ni à effectuer de dépôt, etc.
Collecter et partager des ballons : les délégations off-chain
Chaque ballon du jeu était représenté par un smart contract NFT unique attribué à un compte délégateur. Ce compte délégateur pouvait émettre des délégations aux joueurs ayant découvert le ballon physique correspondant, leur permettant de se désigner eux-mêmes comme détenteurs pour revendiquer une victoire. Voici les deux types de délégations que nous avons mis en place :
Délégations depuis le compte délégateur : cela permettait à un joueur de recevoir une délégation spéciale du compte délégateur lorsqu'il trouvait un ballon physique. Cette délégation accordait ensuite au joueur la permission de se désigner lui-même comme détenteur du ballon, condition nécessaire pour appeler la fonction de victoire.
Délégations entre joueurs : les joueurs pouvaient également créer des offres à destination d'autres joueurs, en précisant les ballons auxquels ils avaient accès et la commission qu'ils exigeaient pour qu'un autre joueur utilise ce ballon afin de revendiquer une victoire. Ces offres étaient off-chain, ce qui les rendait gratuites et instantanées.
Le compte délégateur étant entièrement intégré à l'expérience de jeu, jouer ne nécessitait aucune validation de la part des joueurs, offrant ainsi une expérience sans interruption.
Revendiquer la victoire : les transactions groupées avec prise en charge du gas
Pour remporter le jeu, un joueur devait se voir attribuer les 10 ballons, soit par d'autres joueurs, soit directement par le compte délégateur, avant de pouvoir appeler la fonction de victoire. Le premier joueur à remplir cette condition était déclaré vainqueur et recevait la somme mise en jeu, déduction faite des commissions dues aux autres joueurs ayant partagé leur accès aux ballons avec le gagnant.
Le MetaMask Delegation Toolkit garantissait que les accords off-chain entre joueurs étaient appliqués de manière programmatique. Lorsqu'un joueur acceptait une offre et utilisait les ballons partagés pour remporter la partie, les commissions étaient automatiquement distribuées aux propriétaires respectifs des ballons dans le cadre d'une transaction groupée atomique.
De plus, cela n'engendrait aucun coût pour le gagnant ni pour les propriétaires des ballons, le jeu prenant en charge les frais de gas. Les seuls frais de gas engagés concernaient la transaction groupée (hash de transaction) de la revendication de victoire, qui incluait le déploiement du smart account du gagnant et les transferts vers les bénéficiaires des commissions. Pour un jeu ayant mobilisé 621 joueurs, nous n'avons eu à payer que 57 centimes en frais de gas, offrant ainsi une expérience entièrement sans frais à tous les utilisateurs. Cette fonctionnalité constitue une stratégie de croissance pour les développeurs souhaitant prendre en charge les frais de gas de leurs utilisateurs de manière économique, garantissant une expérience fluide sans se soucier des coûts de transaction.
Vers une meilleure UX dans le web3
Grâce à la conception innovante et à l'utilisation concrète du Delegation Toolkit, le jeu Red Balloon donne vie à un concept complexe, permettant aux joueurs de découvrir le potentiel de la coordination décentralisée et des accords appliqués de manière programmatique, tout en offrant une expérience d'onboarding et de jeu fluide.
Cette démonstration met non seulement en lumière les capacités uniques du Delegation Toolkit, mais offre également aux participants d'EthCC un aperçu de l'avenir de l'UX web3. Vous souhaitez tirer parti du Delegation Toolkit pour proposer une UX soignée sur votre dapp ? Obtenez un accès anticipé dès aujourd'hui !