Modularized account abstracted wallet, providing customized user experience based on users' needs.
The diverse user profiles in the crypto space demand different requirements from account abstraction (AA) wallets. For instance, new users might prioritize having basic wallet functionalities like account recovery, spending limit controls, and gasless transactions, whereas DeFi masters may require advanced features such as multisig, recurring payments, and the ability to pay gas in USDC. Similarly, gamers need wallets that can handle micro-transactions automatically like a session key.
While there are wallets like Metamask, Trust Wallet, ArgentX, and more, they may not cater to every user's specific needs. This creates the inconvenience of managing multiple wallets to satisfy all the desired features.
WalletX is the modular account abstraction wallet that revolutionizes the way users interact with cryptocurrencies. Our platform provides a plugins marketplace that addresses the limitations of traditional wallets and enables users to tailor their experience based on their unique needs by leveraging account abstraction technologies.
With WalletX, users have the freedom to select any combination of plugins from our extensive library, creating personalized wallets that meet their specific requirements. Additionally, our platform is decentralized, meaning developers from all over the world can contribute to the plugins marketplace, making it the ultimate hub for innovation in the world of AA wallets.
Our project comprises four main components: the Account Abstraction Wallet, the Factory Aggregator Uploader, the published contracts, and the Bundler. The Account Abstraction Wallet is a Chrome extension built with React, Redux, EthersJS, and Wagmi. Similarly, the Factory Aggregator Uploader is built with React + Vite and Wagmi. The published contracts consist of an Aggregator contract (plugin contract) written in Solidity and a demo account abstraction contract that uses the ERC-4337 account abstraction standard and zkSync built-in account abstraction.
To initialize the wallet, the wallet extension retrieves the available factory features from the factory aggregator contract. Users can then select the features they want to include in their customized wallet. A temporary account is created by the factory, which needs to be funded to cover the deployment gas fee. Once the account has sufficient funds, it can be deployed as a smart contract wallet. The wallet can then be used with the selected features and a customized UI that corresponds to the chosen features.
On the front end level, we used a hacky method to dynamically compose a dedicated UI configuration for the different features selected by the wallet user. The aggregator contract handles CRUD operations for the list of different factory account abstraction contracts. Through this smart contract, the wallet can obtain information on the available features published by the developer. Contributors publish the factory contract information via a dedicated web app.
We also used a bundler that listens to UserOperations mempool submitted by EOA wallet. The bundler bundles multiple UserOperations together and sends the bundle to EntryPoint Contracts to execute the UserOperations.