ethers-wallet-manager
v1.4.0
Published
CLI tool for managing Ethereum wallets with ethers.js
Maintainers
Readme
Ethers Wallet Manager CLI
A powerful command-line interface for managing Ethereum wallets using ethers.js. Create, import, and manage multiple wallets with secure keystore encryption.
Installation
Install globally via npm:
npm install -g ethers-wallet-managerAfter installation, you can use either command:
ethers-wallet-manager(full command)vlet(short alias)
Features
- 🔐 Secure Wallet Management: Create and import wallets with encrypted keystore files
- 🎯 Multiple Import Methods: Support for private keys, mnemonic phrases, and keystore JSON
- 🌐 Network Support: Configure and switch between different Ethereum networks
- 📝 HD Wallet Support: Create hierarchical deterministic wallets with custom derivation paths
- 🔑 Message & Transaction Signing: Sign messages and transactions securely
- 🏷️ Wallet Aliases: Manage multiple wallets with easy-to-remember names
- ⚙️ Configuration Management: Persistent configuration with import/export functionality
Quick Start
Create a New Wallet
vlet create my-wallet --password mySecurePassword
# or use alias:
vlet new my-wallet --password mySecurePasswordImport from Mnemonic
vlet import imported-wallet --mnemonic "your twelve word mnemonic phrase here" --password myPassword
# or use alias:
vlet load imported-wallet --mnemonic "your twelve word mnemonic phrase here" --password myPasswordImport from Private Key
vlet import pk-wallet --private-key 0x1234... --password myPassword
# or use alias:
vlet load pk-wallet --private-key 0x1234... --password myPasswordList All Wallets
vlet listShow Wallet Information
vlet info my-walletShow Wallet Information with Private Key
vlet info my-wallet --show-private-key --password mySecurePasswordSet Default Account
vlet config set-default-account my-walletRemove a Wallet
vlet remove my-wallet --force
# or use alias:
vlet delete my-wallet --forceSign a Message
vlet sign-message my-wallet "Hello, World!" --password mySecurePasswordCommands
Wallet Management:
create <alias>/new <alias>- Create a new walletimport <alias>/load <alias>- Import an existing walletlist- Show all managed walletsinfo <alias>- Show wallet informationremove <alias>/delete <alias>- Remove a walletsign-message <alias> <message>- Sign a message with a walletset-network <alias> <network>- Set network for a specific walletupdate-password <alias>- Update wallet password
Configuration:
config show- Show current configurationconfig set-keystore-dir <directory>- Set keystore directoryconfig set-default-network <network>- Set default networkconfig set-current-network <network>- Set current networkconfig set-default-account <alias>- Set default account/walletconfig export <file>- Export configurationconfig import <file>- Import configurationconfig reset- Reset to defaults
Configuration
The CLI stores configuration and wallet data in:
- Config:
~/.ethers-wallet-manager/config.json - Wallets:
~/.ethers-wallet-manager/wallets/
Supported Networks
- Mainnet
- Goerli
- Sepolia
- Polygon
- Custom RPC endpoints
Security Features
- Encrypted Keystores: All private keys are encrypted using industry-standard encryption
- Password Protection: Each wallet requires a password for access
- Local Storage: No data is transmitted to external servers
- Secure Key Generation: Uses cryptographically secure random number generation
Development
Build from Source
git clone https://github.com/neomody77/ethers-wallet-manager-cli.git
cd ethers-wallet-manager-cli
npm install
npm run buildRun Development Version
npm run cli -- create --alias test-walletAPI Usage
You can also use this as a library in your Node.js projects:
import { WalletManager } from 'ethers-wallet-manager';
const manager = new WalletManager();
// Create a new wallet
const wallet = await manager.createWallet({
alias: 'my-app-wallet',
password: 'secure-password'
});
// Import existing wallet
const imported = await manager.importWallet({
alias: 'imported-wallet',
mnemonic: 'your mnemonic phrase here',
password: 'password'
});Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Issues
- 📚 Documentation: GitHub Wiki
Disclaimer
This software is provided "as is" without any warranty. Always backup your wallet files and never share your private keys or mnemonic phrases. The developers are not responsible for any loss of funds.
