Skip to content
Back to skills

Ethereum Wallet Toolkit Guide

ASecurity

Guide to the Ethereum Wallet Toolkit — Python CLI tools and MCP servers for wallet generation, BIP39/BIP44 HD wallets, Web3 Secret Storage V3 keystores, EIP-712 typed data signing, and vanity address generation. Fully offline-capable for maximum security.

  • 7 stars
  • 0 votes
  • 0 copies
  • 10 views
  • Added June 7, 2026
blockchainpythongobashgitsecurity

Works with

  • cli
  • mcp

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned June 7, 2026

npx -y skills add nirholas/three-ui --skill ethereum-wallet-toolkit-guide --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ethereum Wallet Toolkit Guide?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ethereum Wallet Toolkit Guide
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nirholas-ethereum-wallet-toolkit-guide/badge)](https://www.skillsdirectory.com/skills/nirholas-ethereum-wallet-toolkit-guide)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ethereum-wallet-toolkit-guide
description: Guide to the Ethereum Wallet Toolkit — Python CLI tools and MCP servers for wallet generation, BIP39/BIP44 HD wallets, Web3 Secret Storage V3 keystores, EIP-712 typed data signing, and vanity address generation. Fully offline-capable for maximum security.
license: MIT
metadata:
  category: development
  difficulty: intermediate
  author: nich
  tags: [development, ethereum-wallet-toolkit-guide]
---

# Ethereum Wallet Toolkit Guide

Python toolkit for Ethereum wallets: CLI tools + MCP servers for wallet generation, BIP39/BIP44 HD wallets, keystores, and typed data signing. Designed for offline use.

## Core Features

| Feature | Description | Offline |
|---------|-------------|---------|
| **Wallet Generation** | Create new Ethereum wallets | ✅ |
| **BIP39 Mnemonics** | 12/24-word seed phrases | ✅ |
| **BIP44 HD Wallets** | Derive multiple addresses from one seed | ✅ |
| **Keystores** | Web3 Secret Storage V3 encryption | ✅ |
| **EIP-712 Signing** | Typed structured data signing | ✅ |
| **Vanity Addresses** | Custom-prefix wallet addresses | ✅ |
| **MCP Server** | AI agent interface for all features | ✅ |

## Quick Start

```bash
pip install ethereum-wallet-toolkit
```

## Wallet Generation

### Create a New Wallet

```bash
ethereum-wallet create
# Output:
# Address: 0x742d35Cc6634C0532925a3b844Bc...
# Private Key: 0x4c0883a69102937d62...
# Mnemonic: abandon ability able about above...
```

### From Mnemonic (BIP39)

```python
from ethereum_wallet_toolkit import Wallet

wallet = Wallet.from_mnemonic(
    "abandon ability able about above absent absorb abstract absurd abuse access accident"
)
print(wallet.address)  # 0x...
print(wallet.private_key)  # 0x...
```

### HD Wallet Derivation (BIP44)

```python
from ethereum_wallet_toolkit import HDWallet

hd = HDWallet.from_mnemonic("your 12 words here")

# Derive multiple addresses
for i in range(5):
    child = hd.derive(f"m/44'/60'/0'/0/{i}")
    print(f"Address {i}: {child.address}")
```

Standard Ethereum derivation path: `m/44'/60'/0'/0/index`

## Keystores (Web3 Secret Storage V3)

### Create Keystore

```python
from ethereum_wallet_toolkit import Keystore

# Encrypt private key with password
keystore = Keystore.encrypt(
    private_key="0x4c0883a69102937d...",
    password="my-strong-password"
)

# Save to file
keystore.save("./my-keystore.json")
```

### Decrypt Keystore

```python
wallet = Keystore.decrypt("./my-keystore.json", "my-strong-password")
print(wallet.private_key)
```

## EIP-712 Typed Data Signing

```python
from ethereum_wallet_toolkit import sign_typed_data

# Sign EIP-712 structured data (used by Permit, x402, etc.)
signature = sign_typed_data(
    private_key="0x...",
    domain={
        "name": "Sperax USDs",
        "version": "1",
        "chainId": 42161,
        "verifyingContract": "0xD74f5255D557944cf7Dd0E45FF521520002D5748"
    },
    types={
        "Transfer": [
            {"name": "from", "type": "address"},
            {"name": "to", "type": "address"},
            {"name": "value", "type": "uint256"}
        ]
    },
    message={
        "from": "0xSender",
        "to": "0xRecipient",
        "value": 1000000
    }
)
```

## Vanity Address Generation

```bash
# Find address starting with 0xdead
ethereum-wallet vanity --prefix dead --threads 8

# Find address ending with 1234
ethereum-wallet vanity --suffix 1234 --threads 8
```

Uses multi-threaded search across all CPU cores for fast generation.

## Offline HTML Tool

The toolkit includes `offline1.html` — a single-file, fully offline wallet tool:
- Generate wallets
- Sign transactions
- Create keystores
- No network connection required
- Built with official @ethereumjs libraries

## MCP Server

```json
{
  "mcpServers": {
    "eth-wallet": {
      "command": "ethereum-wallet-toolkit",
      "args": ["mcp"]
    }
  }
}
```

### MCP Tools
- `createWallet` — Generate new wallet
- `fromMnemonic` — Restore from seed phrase
- `deriveChild` — HD wallet derivation
- `signTypedData` — EIP-712 signing
- `createKeystore` — Encrypt to keystore
- `decryptKeystore` — Decrypt keystore

## Security Best Practices

1. **Always generate keys offline** — air-gapped machine preferred
2. **Never share private keys or mnemonics** with anyone including AI agents
3. **Use keystores** for storing keys on disk (password-encrypted)
4. **Backup mnemonics** on physical media (metal plate, paper in safe)
5. **Test with small amounts** before large transfers

## Links

- GitHub: https://github.com/nirholas/ethereum-wallet-toolkit
- BIP39 Spec: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
- EIP-712: https://eips.ethereum.org/EIPS/eip-712
- Sperax (DeFi on Arbitrum): https://app.sperax.io

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.