关键词:Python 以太坊钱包、命令行客户端、ERC20 转账、私钥导入导出、Web3py 教程
如果你正在寻找一款无需安装臃肿 GUI、只靠终端就能完成的 Python 以太坊钱包,wallet-eth
是一个值得尝试的开源项目。它体积小于 15 kB,却能满足 创建钱包、监听转账、批量管理代币 等多种需求。本文将手把手解析它的功能、安装与二次开发技巧,让你在 5 分钟内玩转链上资产。
快速认识 wallet-eth
wallet-eth
是一个 轻量级 Python 命令行客户端,底层使用 fire + web3py,同时拥有极简的三模块架构:
模块名称 | 主要职责 | 典型指令 |
---|---|---|
wallet | 私钥、助记词、Keystore 的导入、导出、创建 | wallet create , wallet recover |
token | ERC20 余额、转账、事件订阅 | token balance , token send , token event |
tool | 网络切换、节点状态 | tool current , tool set |
由于所有交互都通过 终端指令 完成,你既能把脚本塞进 CI/CD,也能在远程服务器上一键发币。
核心功能拆解
1. 私钥与助记词管理:安全第一条
wallet-eth
并不保存任何数据到本地磁盘,所有信息仅存在于 当前会话。
使用示例:
钱包创建
$ python -m wallet_eth wallet create --path ./keystore --password 123456
用助记词快速恢复
$ python -m wallet_eth wallet recover --mnemonic "助记词空格分隔" --index 0
温馨提示:执行命令后请立即将
keystore
文件或助记词加密备份,避免泄漏。
2. 监听实时转账事件:快速发现打入的币
监听 Transfer 事件只需要一条指令:
$ python -m wallet_eth token event \
--contract 0xA0b86a33E6441e0A421e56BC8a6bD65C13c9F64A \
--from_block latest
日志会实时输出 from
、to
、value
等字段,方便你把结果直接重定向到数据库或报警系统。
3. ERC20 转账:一行指令,广播全网
如何把 USDT 转给朋友?准备好 私钥
、接收方地址
、代币合约地址
后:
$ python -m wallet_eth token send \
--pk YOUR_PRIVATE_KEY \
--to 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B \
--contract 0xdAC17F958D2ee523a2206206994597C13D831ec7 \
--amount 100
默认会把 gas price、gas limit 设为 web3 推荐值;如需提速,可加 --gas_price 30
(单位 Gwei)。
安装与运行指南
方式一:pip 安装(推荐)
# 需要 Python 3.8+
pip install wallet-eth==0.0.2
方式二:源码运行(最新 main 分支)
git clone https://github.com/xxx/wallet-eth.git
cd wallet-eth
python setup.py install
执行完即可全局使用 wallet_eth
命令行。
二次开发小贴士
wallet-eth
本身就是最小的示范,你可以:
- 把核心类包成 Flask API,做内部后端清算服务;
- 接入 Slack Bot,实现一键打赏;
- 扩展
token.py
中的send
方法,支持 EIP-1559 动态费用。
核心文件仅 200 行以内,熟悉 web3py 后改起来毫无压力。
👉 5 分钟用 FastAPI 把钱包网关改造成线上收款系统,示例代码一键复制
常见问题 (FAQ)
Q1:钱包创建后,私钥会不会被上传到网络?
A:不会。wallet-eth
对网络零依赖;所有计算在本地完成。你可以在离线电脑上生成钱包,再用二维码把地址传到在线设备。
Q2:能否同事管理 BSC、Polygon 等其他 EVM 链?
A:能!通过 tool set --network https://bsc-dataseed.binance.org
即可切换节点,ABI 通用无需修改。
Q3:出现「Insufficient funds」但地址明明有币?
A:大概率把「代币余额」当成了「主币余额」。发 ERC20 仍需钱包里有一点 ETH(或相应主网代币)支付 gas。用 tool current
查看所在链,再申请一些水龙头币即可。
Q4:助记词路径如何自定义?
A:在 wallet recover
时加入 --derivation m/44'/60'/0'/0/1
即可切换 HD 派生路径。
Q5:如何批量查询地址代币余额?
A:编写 Python 脚本循环 token balance
;或用列表推导把地址与合约地址拼成列表,再并行请求 web3。
高阶玩法:脚本化资产管理
以下是一个批量归集 USDC 的简单场景脚本:
from wallet_eth.token import Token
from wallet_eth.wallet import Wallet
wallets = ['0x1...', '0x2...']
contract = '0xA0b86a33E6441e0A421e56BC8a6bD65C13c9F64A'
target = '0xMainVault...'
for addr in wallets:
bal = Token.balance(addr, contract)
if bal >= 10 * 1e6: # USDC 小数 6 位
Token.send(
pk=Wallet.recover_from_file(f'{addr}.json', '密码'),
to=target,
amount=bal,
contract=contract
)
每晚 0 点跑一次,所有散碎 USDC 就自动回到金库。
👉 体验在线 DeFi 收益对比工具:一键计算这笔手续费到底值不值
安全审计 & 风险提示
- 不要通过复制粘贴传递私钥,推荐用 环境变量 或 签名代理;
- 大额转账前先用 测试网 验证;
- 由于项目版本更新不频繁,代码仍需人工审计,务必在生产环境加 单位测试 与 gas 上限兜底。
小结
借助 wallet-eth
,你可以:
- 用 30 秒 创建新的以太坊钱包;
- 用 1 分钟 发出第一笔主网 ERC20 转账;
- 用 5 行脚本 实现自动归集、对账、空投。
它是学习 web3py、部署 CI 级钱包服务 的完美起点。现在就 pip install
,打开终端,感受一行指令撬动链上世界的畅快。