Vyper contracts used in ERC-6551 Wallet.
ERC-6551 Wallet is a smart contract wallet solution supporting social recovery, built on the Ethereum blockchain. Through ERC-6551 Wallet, developers can provide a smooth user experience in their products, free of private keys and gas, thereby rapidly attracting massive Web2 users.
ERC-6551 Wallet supports paying transaction fees with any token, and will cover all platforms including web, mobile, and browser plug-ins, supporting various invocation methods. Compatible with the latest ERC-4337 account abstraction and ERC-6551 , ERC-6551 Wallet is a leading smart contract wallet solution.
- python3 from version 3.8 to 3.11, python3-dev
- eth-ape - tested with version 0.6.15
- vyper - tested with version 0.3.7
- ganache-cli - tested with version 7.9.0
ERC-6551 Wallet contracts are compiled using Vyper, however installation of the required Vyper versions is handled by Ape.
To get started, first create and initialize a Python virtual environment. Next, clone the repo and install the developer dependencies:
git clone https://github.com/zkevm-zkp/erc6551-wallet.git
cd erc6551-wallet
pip install -r requirements.txt
- Creating an account is based on the contract template in the contracts/factory directory.
- Building transactions, proxy, and guardians are constructed based on the contract templates in the contracts/manager directory.
The test suite contains common tests for all Ape wallet, as well as unique per-manager tests. To run the entire suite:
ape test
To run tests on a specific manager:
ape test tests/<MANAGER NAME>
You can optionally include the --coverage
flag to view a coverage report upon completion of the tests.
To deploy a new ape wallet:
- Edit the configuration settings within scripts/main.py.
- Test the deployment locally against a forked mainnet.
ape run deploy --network ethereum:mainnet-fork:hardhat
When the script completes it will open a console. You should call the various getter methods on the deployed contracts to ensure the pool has been configured correctly. 3. Deploy the wallet to the mainnet.
ape run deploy --network ethereum:mainnet:hardhat
(c) 0x77, 2025 - All rights reserved.