跳转至

wallet-cli —— TypeScript 实现

TypeScript 版面向脚本、CI 和 AI 智能体调用:每条命令都有稳定的 JSON 响应结构、确定的退出码和 可查询的 schema;交互式提示被限制在一份很短的白名单内——create、各个 import 子命令、backupchange-passworddelete——除此之外,凭据缺失一律直接报错,绝不弹出提示。关于 wallet-cli 以及 两种实现的对比,参见仓库总览;关于最早的实现,参见 Java 实现

主要特性

  • 便于自动化集成——提供稳定的 JSON 输出、确定的退出码和可查询的 schema,适合脚本、CI 和 AI 智能体调用(细节见接口约定概要)。
  • 加密的本地存储——软件 keystore 在磁盘上加密保存;敏感信息只经由 stdin/TTY 进入,绝不经过命令行参数或专用的敏感信息环境变量。
  • 软件签名与 Ledger 签名——用软件签名,或在 Ledger 设备上签名(私钥绝不离开设备)。
  • 完整的 TRON 功能支持——HD 钱包、TRX 与 TRC20/TRC10 转账、质押 / 资源代理、投票 / 奖励、 治理提案与超级代表运营、智能合约调用、部署与治理、TRC10 发行、链上 Bancor 交易所、多重签名、 GasFree 转账、消息签名,以及链上查询。
  • EVM 链同样支持——转账、token、合约和签名在以太坊与 BNB Smart Chain 上同样可用。仅属于 TRON 协议的命令在 EVM 网络上会以 family_mismatch 拒绝执行;参见哪些命令能在哪些网络上运行

目录

支持的链

内置支持七个网络。网络使用规范的 CAIP-2 namespace:reference id 标识。namespace 不等于链家族eip155 是 CAIP-2 为 EVM 链定义的 namespace,而本 CLI 用于分支判断的家族名是 evm别名是可代替 id 输入的简称;它只在选择网络时解析,不会出现在输出中:

网络 id 别名 说明 原生币价值
tron:728126428 tron TRON 生产主网 真实资金
tron:3448148188 nile 主要的 TRON 测试网(水龙头在 nileex.io) 无——可自由使用
tron:2494104990 shasta 备用的 TRON 测试网
eip155:1 ethereum 以太坊主网(ETH) 真实资金
eip155:11155111 sepolia 以太坊测试网(ETH)
eip155:56 bsc BNB Smart Chain(BNB) 真实资金
eip155:97 bsc-testnet BNB Smart Chain 测试网(BNB)

在同一个家族内部,你的地址在每个网络上都相同(TRON 上是 base58 的 T…,EVM 上是 0x…——两个家族由同一份种子派生出的是不同的地址),而余额、token 和交易按网络隔离。费用跟随家族:TRON 的 tron-resource 模型(带宽 + 能量),或者 EVM 的 gas——参见网络能量与带宽

安装

前置条件Node.js 20 或更高版本(用 node --version 检查)。Ledger 签名还需要一台受支持的 Ledger 设备,并安装与所选家族对应的 app——TRON 账户用 TRON app,EVM 账户用 Ethereum app。参见 Ledger 指南

npm install -g @tron-walletcli/wallet-cli

注意 scope:包名是 @tron-walletcli/wallet-cli,不是不带 scope 的 wallet-cli(那是一个无关的 第三方包)。

验证:

wallet-cli --version
<version>          # 显示已安装的版本

npm update -g @tron-walletcli/wallet-cli 升级;用 npm uninstall -g @tron-walletcli/wallet-cli 卸载。

从源码构建(贡献者,或要运行未发布的改动)——还需要 Git:

git clone https://github.com/tronprotocol/wallet-cli.git
cd wallet-cli/ts
npm ci && npm run build
npm link             # 把 `wallet-cli` 放到 PATH 上(或直接运行:node dist/index.js)

快速上手

创建你的第一个钱包。 create 会提示输入 master password,然后显示新账户:

wallet-cli create --label main
✅ Created wallet "main"
  Account ID    wlt_2dbv24de.0
  Type          HD
  TRON address  TTVdGTBXY5mmY3nJFGUp7Vo898kUJ6gtFQ
  EVM address   0x5c8e1b04A7f39d62C0B3e85A1d47F9028b6ce713
  Active        yes

⚠️ Recovery phrase is encrypted locally and was not printed.
⚠️ Run `backup` soon and store the file offline.
wallet-cli list
HD  wlt_2dbv24de
└─ [0] main  TTVdGTBXY5mmY3nJFGUp7Vo898kUJ6gtFQ  (active)

完整流程——在测试网上充值、查看余额、发送第一笔 TRX——见快速上手指南。 之后可以按主题深入:发送 token · 质押与资源 · 使用 Ledger 硬件钱包 · 脚本编写

命令

每条命令——包括每个子命令——都有自己的参考页;完整的逐命令列表见 命令索引;也可以运行 wallet-cli <command> --help 查看内置帮助。

钱包与账户

创建、导入和管理本地钱包与账户。

命令 说明
create 创建新的 HD 钱包(BIP39 种子)
import 导入钱包——mnemonic · private-key · keystore · ledger · watch(仅观察)
list 列出钱包与账户
use · current 设置 / 显示当前账户(current --qr 显示收款二维码)
derive 从种子钱包派生下一个 HD 账户
rename · backup · delete 重命名、备份或删除账户(backup 以 0600 权限导出密钥材料和元数据;--keystore 使用 Web3 keystore 格式,--records 输出导出审计日志)
change-password 更换 master password(重新加密全部软件 keystore)

交易

发送、广播、查看和联合签名交易。

命令 说明
tx send 发送原生 TRX 或 TRC20/TRC10 token
tx broadcast 广播已签名的交易
tx status · tx info 确认状态,或完整详情 + 回执
tx sign · tx approvals · tx multisig 联合签名多签交易并查看批准情况

链上查询

读取账户、区块和链的状态。

命令 说明
account balance · info · portfolio 余额、账户原始数据,或带 USD 估值的余额
account history 交易历史(需要 TronGrid)
account activate · set 激活账户,或设置其链上名称 / ID
block 获取区块(省略则取最新块)
chain params · prices · node 治理参数、资源价格,或节点状态

Token、合约、质押、签名

Token 与合约操作、资源质押、投票奖励、消息签名,以及权限管理。

命令 说明
token Token 地址簿与查询(balance · info · add · list · remove)
contact 收款人联系簿(add · list · remove)
contract 调用、发送、部署、查看和治理合约(call · send · deploy · info · clear-abi · set-origin-energy-limit · set-user-resource-percent · create2)
stake 质押 / 代理资源(freeze · unfreeze · delegate · info, …)
vote · reward 为超级代表投票并领取投票奖励
message · typed-data 签名任意消息,或 EIP-712/TIP-712 结构化数据
permission 查看 / 更新用于多重签名的账户权限
gasfree 通过 GasFree 服务进行免 gas 的 token 转账

治理、TRC10 与链上交易所

链治理、超级代表运营,以及 TRON 协议级的 TRC10 与 Bancor 交易所机制。

命令 说明
proposal 链参数提案(list · show · create · approve · delete) ——list / show 对任何人开放,写操作命令需要已注册的见证人
witness 注册和运营超级代表(create · update · set-brokerage)
asset 发行和管理 TRC10 token(issue · update · participate · unfreeze · info · list);TRC10 转账通过 tx send 进行
exchange TRX 与 TRC10 之间的协议级 Bancor 交易所(create · inject · withdraw · trade · show · list)

本地工具与配置

离线的本地命令与配置。

命令 说明
encoding convert 转换 / 校验地址和编码
address generate 生成随机密钥对(本地,不保存)
config 显示 / 读取 / 设置配置值
networks 列出已知网络

接口约定概要

每条命令都支持 -o json,并在 stdout 上输出恰好一个完整的 JSON 对象,schema 为 wallet-cli.result.v1。退出码是固定的:0 成功、 1 执行失败、2 用法错误。敏感信息(密码、助记词、私钥)绝不接受通过命令行参数传入,也不会从专用的敏感信息环境变量读取。密码可以通过 stdin 标志或交互式 TTY 提示进入;助记词/私钥导入和 change-password 只能交互执行(完全没有 stdin 路径)。完整规范:machine-interface.md

理解 TRON 机制

TRON 在费用、账户和密钥权限方面与 EVM 链有较大差异,建议在操作前了解以下内容:

  • 网络——七个内置网络、CAIP-2 id,以及两个链家族
  • 账户与 HD——助记词、派生路径、账户激活
  • 能量与带宽——TRON 基于资源的费用模型(取代 EVM gas)
  • 安全——keystore 加密、敏感信息处理、多签权限

故障排查

命令报错或行为异常?常见问题及诊断方法见 troubleshooting.md

凡是会花钱的可复制示例都指向测试网——TRON 上是 Nile--network tron:3448148188),EVM 上是 Sepolia--network eip155:11155111)。主网 id(tron:728126428eip155:1)也会出现:用在只读示例中, 例如 token 地址簿列表和配置路径,以及少数几处主网 token 合约的示意。最后这类示例带的是占位收款方 (T... / 0x...),照抄是跑不通的。