Catalog PyPI
Back to packageRELEASE DETAILS

1.0.0b1

PyPI

abstract-wallet

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

bip-32erc-4337wallet
Published11 Apr 2026
Direct dependencies7
Transitive dependenciesNot calculated

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.

Declared dependencies 7

Native requirements
7 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
ecdsa
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.13",
  "evaluation": "NOT_EVALUATED"
}
ecdsa>=0.19.2runtime
eth-utils
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.13",
  "evaluation": "NOT_EVALUATED"
}
eth-utils>=6.0.0runtime
eth_abi
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.13",
  "evaluation": "NOT_EVALUATED"
}
eth_abi>=5.2.0runtime
eth-account
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.13",
  "evaluation": "NOT_EVALUATED"
}
eth-account>=0.13.7runtime
pyhumps
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.13",
  "evaluation": "NOT_EVALUATED"
}
pyhumps>=3.8.0runtime
requests
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.13",
  "evaluation": "NOT_EVALUATED"
}
requests>=2.33.1runtime
safe-pysha3
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.13",
  "evaluation": "NOT_EVALUATED"
}
safe-pysha3>=1.0.5runtime

Distribution files

2 collected
abstract_wallet-1.0.0b1-py3-none-any.whl

bdist_wheel · 20.9 KB · Python py3

Source file
abstract_wallet-1.0.0b1.tar.gz

sdist · 19.5 KB · Python source

Source file

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_version:5bcda53723e006ce4ecfdabe51d00135750d650de982aebc4a80cd470463f7f2

Other collected versions

View all collected versions →