Note: This package is currently in beta. Please test thoroughly in development environments before using in production.
A simple and secure package to manage ERC-4337 compliant wallets for EVM-compatible blockchains. This package provides a clean API for creating, managing, and interacting with account abstraction wallets using BIP-39 seed phrases and EVM-specific derivation paths.
This module is part of the WDK (Wallet Development Kit) project, which empowers developers to build secure, non-custodial wallets with unified blockchain access, stateless architecture, and complete user control.
For detailed documentation about the complete WDK ecosystem, visit docs.wdk.tether.io.
npm install @tetherto/wdk-wallet-evm-erc-4337import WalletManagerEvmErc4337 from '@tetherto/wdk-wallet-evm-erc-4337'
const seedPhrase = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'
const wallet = new WalletManagerEvmErc4337(seedPhrase, {
chainId: 11155111, // Sepolia
provider: 'https://sepolia.drpc.org',
bundlerUrl: 'https://api.pimlico.io/v2/sepolia/rpc?apikey=YOUR_KEY',
entryPointAddress: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
safeModulesVersion: '0.3.0',
useNativeCoins: true,
})
const account = await wallet.getAccount(0)
const address = await account.getAddress()
console.log('Smart account address:', address)
wallet.dispose()- ERC-4337 Account Abstraction: Full implementation of the ERC-4337 standard
- Multiple Gas Payment Modes: Pay fees with native coins, ERC-20 tokens via paymaster, or sponsored transactions
- UserOperation Management: Create and send UserOperations through bundlers
- BIP-44 Derivation Paths: Standard Ethereum derivation (m/44'/60')
- Multi-Account Management: Derive multiple smart accounts from a single seed phrase
- ERC-20 Token Support: Query balances and transfer tokens via UserOperations
- Message Signing: Sign and verify messages with the underlying EOA key
- Per-Call Config Overrides: Switch gas payment modes on a per-transaction basis
- Secure Memory Disposal: Clear private keys from memory when done
- Ethereum Mainnet and testnets (Sepolia)
- Layer 2 Networks: Arbitrum, Optimism, Base
- Other EVM Chains: Polygon, Avalanche C-Chain, and any EVM-compatible chain with ERC-4337 support
| Topic | Description | Link |
|---|---|---|
| Overview | Module overview and feature summary | Wallet EVM ERC-4337 Overview |
| Usage | End-to-end integration walkthrough | Wallet EVM ERC-4337 Usage |
| Configuration | Provider, bundler, paymaster, and network setup | Wallet EVM ERC-4337 Configuration |
| API Reference | Complete class and type reference | Wallet EVM ERC-4337 API Reference |
| Example | Description |
|---|---|
| Create Wallet | Initialize ERC-4337 wallets with paymaster token and native coins modes |
| Manage Accounts | Work with multiple smart accounts and custom derivation paths |
| Check Balances | Query native token and ERC-20 balances for smart accounts |
| Read-Only Account | Monitor smart account balances and estimate fees without a private key |
| Send Transaction | Send transactions via UserOperations through the bundler |
| Token Transfer | Transfer ERC-20 tokens via UserOperations with gas mode overrides |
| Sign & Verify Message | Sign messages and verify signatures with ERC-4337 accounts |
| Fee Management | Retrieve current bundler fee rates |
| Memory Management | Securely dispose smart wallets and clear private keys from memory |
For detailed walkthroughs, see the Usage Guide. See all runnable examples in the wdk-examples repository.
Join the WDK Discord to connect with other developers.
For support, please open an issue on GitHub or reach out via email.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.