Axir Wallet Modular Smart Contract Wallet
Welcome to the documentation for Axir Wallet, a modular smart contract wallet built on the Ethereum blockchain. This project leverages ERC 7579 to implement account abstraction ERC 4337, providing users with a flexible, secure, and user-friendly wallet solution.
What's Account Abstraction?Introduction
Axir Wallet is designed to provide enhanced security and usability for Ethereum users by abstracting account management into smart contracts. This allows for features such as social recovery, multi-signature wallets, and modular extensions, making it a versatile choice for various use cases.
Take a reference of EIP 7579 in here.
Features
- Modular Design: Easily extendable with additional modules to cater to specific needs.
- Account Abstraction: Implements ERC 7579, allowing smart contract-based account management.
- Enhanced Security: Supports multi-signature wallets and social recovery mechanisms.
- User-Friendly: Designed with the end-user in mind, providing an intuitive interface and seamless experience.
Architecture Overview
ERC-7579 defines a modular architecture for smart accounts, where the core account contract can be extended with different types of modules. The standard defines four main types of modules:
Validators
Responsible for validating transactions and ensuring they are authorized. Validators play a crucial role in the security of smart accounts by preventing unauthorized access and ensuring the integrity of transactions.
Executors
Responsible for executing transactions on behalf of the smart account. Executors allow for complex transaction execution flows, such as batching multiple transactions together or implementing custom error handling logic.
Fallback Handlers
Handle any transactions that don't match the account's other functions. Fallback handlers provide a catch-all mechanism for dealing with unexpected transactions, ensuring the account can handle any incoming calls gracefully.
Hooks
Allow for custom logic to be executed before or after transactions. Hooks enable developers to add custom functionality to smart accounts without modifying the core contract code, such as logging, notifications, or integrating with external systems.
Each module type has a unique identifier (e.g., 1 for validators, 2 for executors) and must implement the IModule interface. This interface defines common functions for all modules, such as onInstall and onUninstall, which are called when a module is added or removed from the account.
Core Contract
The core contract is responsible for managing the user's account and facilitating interactions with various modules. It implements ERC 7579 to allow for flexible account abstraction.
Axir Wallet is licensed under the MIT License.
We hope you find Axir Wallet useful and look forward to your feedback and contributions!