Skip to content

Davi0k/abstract-wallet

Repository files navigation

abstract-wallet

Python 3.13 License: MIT

A software development kit for creating and managing ERC-4337 smart contract accounts on ethereum and ethereum layer-2 blockchains.

Installation

pip install abstract_wallet

Quickstart

from abstract_wallet import AbstractWallet

seed_phrase = AbstractWallet.get_random_seed_phrase()

wallet = AbstractWallet(seed_phrase, {
    "provider": "https://eth-mainnet.g.alchemy.com/v2/<YOUR API-KEY>",
    "url": "https://api.pimlico.io/v2/1/rpc?apikey=<YOUR API-KEY>",
    "entry_point": "0x0000000071727De22E5E9d8BAf0edAc6f37da032",
    "factory": "0x9406Cc6185a346906296840746125a0E44976454"
})

account = wallet.get_account(0)

print(f"Address: {account.address}")

print(f"Balance: {account.get_balance()} wei")

Configuration

The BundlerConfig dictionary accepts the following fields:

Field Type Required Description
provider str Yes URL of a JSON-RPC provider (e.g. Alchemy, Infura).
url str Yes URL of the ERC-4337 bundler (e.g. Pimlico, Stackup).
entry_point str Yes Address of the EntryPoint contract.
factory str Yes Address of a SimpleAccountFactory contract.
paymaster str No Address of a paymaster contract to sponsor operations.
paymaster_data bytes No Data to pass to the paymaster.

Sending a user operation

hash = account.send_user_operation({
    "to": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
    "value": 0,
    "data": b"..."  # Encoded calldata
})

print(f"User operation hash: {hash}")

receipt = account.get_user_operation_receipt(hash)

Account discovery

The SDK implements the BIP-44 account discovery algorithm, scanning derivation paths until it finds a gap of 20 unused addresses:

accounts = wallet.get_accounts()

for path, account in accounts.items():
    print(f"{path} -> {account.address}")

Examples

See the examples/ directory for complete, runnable scripts.

Documentation

Full API documentation is available in the docs/ directory. Open docs/index.html in your browser to browse it.

License

MIT - see LICENSE for details.

About

Software development kit to easily integrate abstract wallets in applications.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages