Catalog PyPI
PACKAGE EXPLORERView in registry

abstract-wallet

PyPI

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

bip-32erc-4337wallet
Versions collected1
Direct dependencies7From release 1.0.0b1
Last observed20 Oct, 17:44 UTC

README

Version 1.0.0b1 documentation

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:

FieldTypeRequiredDescription
providerstrYesURL of a JSON-RPC provider (e.g. Alchemy, Infura).
urlstrYesURL of the ERC-4337 bundler (e.g. Pimlico, Stackup).
entry_pointstrYesAddress of the EntryPoint contract.
factorystrYesAddress of a SimpleAccountFactory contract.
paymasterstrNoAddress of a paymaster contract to sponsor operations.
paymaster_databytesNoData 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.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
1.0.0b111 Apr 20267

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
davi0k/abstract-wallet

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:44 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:b7c43c55eaa784cf4fb88c4b7c51a2aa9986f2b9e19156288f5107d7274a562f