网络¶
wallet-cli 用规范 id 来标识网络——它是一个 CAIP-2 的 namespace:reference。这里的 namespace 不等于链家族:eip155 是 CAIP-2 为 EVM 链定义的 namespace,而本 CLI 用于分支判断的家族名是 evm。每个网络都属于两个家族之一——tron 或 evm。
wallet-cli networks
| Network | Alias | Family | Chain id | Fee model | Endpoint |
| --------------- | ------------ | ------ | ---------- | ------------- | ----------------------------------- |
| tron:728126428 | tron | tron | 728126428 | tron-resource | api.trongrid.io |
| tron:3448148188 | nile | tron | 3448148188 | tron-resource | nile.trongrid.io |
| tron:2494104990 | shasta | tron | 2494104990 | tron-resource | api.shasta.trongrid.io |
| eip155:1 | ethereum | evm | 1 | evm-gas | ethereum-rpc.publicnode.com |
| eip155:11155111 | sepolia | evm | 11155111 | evm-gas | ethereum-sepolia-rpc.publicnode.com |
| eip155:56 | bsc | evm | 56 | evm-gas | bsc-dataseed.bnbchain.org |
| eip155:97 | bsc-testnet | evm | 97 | evm-gas | bsc-testnet-dataseed.bnbchain.org |
| eip155:8453 | base | evm | 8453 | evm-gas | mainnet.base.org |
| eip155:84532 | base-sepolia | evm | 84532 | evm-gas | sepolia.base.org |
| Id | 别名 | 是什么 | 原生币价值 |
|---|---|---|---|
tron:728126428 |
tron |
TRON 生产主网 | 真实资金 |
tron:3448148188 |
nile |
主要的 TRON 测试网;水龙头在 nileex.io | 无——可自由使用 |
tron:2494104990 |
shasta |
备用的 TRON 测试网 | 无 |
eip155:1 |
ethereum |
以太坊主网 | 真实资金 |
eip155:11155111 |
sepolia |
以太坊测试网 | 无 |
eip155:56 |
bsc |
BNB Smart Chain | 真实资金 |
eip155:97 |
bsc-testnet |
BNB Smart Chain 测试网 | 无 |
eip155:8453 |
base |
Base | 真实资金 |
eip155:84532 |
base-sepolia |
Base 测试网 | 无 |
别名是你可以用来代替 id 输入的简称。它只在选择网络的那一刻解析一次,下游任何环节都看不到它——JSON 响应中的 chain.network 始终报告规范 id。别名保存在配置里、可以被重新指向,因此脚本应当传规范 id。CAIP-2 之前使用的那几个 TRON id——tron:mainnet、tron:nile、tron:shasta——作为永久别名保留。
对每个内置网络来说,chain id 就是规范 id 的第二段。它是一个独立字段,而不是推导出来的:在 config.yaml 中新增的网络会自带 chainId,并且没有任何东西去检查这两者是否一致。在 EVM 上,它是每个签名都会承诺的那个 EIP-155 数字(56);在 TRON 上,它是十进制的创世哈希前缀(3448148188),除了显示层之外没有任何东西会读它。TRON 网络便于阅读的名称在它的别名里(nile),而不在这个字段里。
用 config 把某个网络指向你自己的节点,或指向一个商用端点:
wallet-cli config networks.tron:3448148188.httpEndpoint http://127.0.0.1:8090
wallet-cli config networks.tron:728126428.apiKeyHeader TRON-PRO-API-KEY
wallet-cli config networks.tron:728126428.apiKey <your-key>
列表类输出(networks、config)只显示端点的主机名,因为商用 URL 可能把 key 放在路径中;只有按名称读取(config networks.<id>.httpEndpoint)时才会显示完整值。
命令如何选择网络¶
- 命令上显式给出的
--network <id|alias>; - 否则是
config.defaultNetwork(wallet-cli config defaultNetwork tron:3448148188); - 如果配置文件没有覆盖它,内置默认值是
tron:728126428(TRON 主网)。
因此省略 --network 并不会让链上命令停下来。凡是涉及资金的操作,请显式传入规范网络 id,好让目标链清清楚楚地出现在 shell 历史和审计日志里。
余额、token 和交易在各个网络之间是完全隔离的。Nile 上的一个 txid 在主网上并不存在——在主网查询它会返回 not_found/rpc_error。
链家族决定可用命令和执行身份¶
你的 TRON 地址在所有 TRON 网络上都相同,EVM 地址在所有 EVM 网络上也都相同——但它们是由同一把密钥派生出的两个不同地址,分别位于 BIP44 币种类型 195 和 60 下。所选网络决定了一条命令以你账户的哪个地址身份执行。参见账户与 HD 钱包。
链家族也决定了哪些命令可用。TRON 的协议特性——质押、超级代表投票、TRC10、Bancor 交易所、链上权限、GasFree——在 EVM 上没有对应功能;这些命令在 EVM 网络上会在调用节点之前返回 family_mismatch。按家族划分的参数采用相同的处理方式,不匹配时返回 invalid_option。命令参考列出了具体范围。
手续费:tron-resource 模型¶
TRON 不像 EVM 链那样收取 gas。交易消耗带宽(字节),智能合约调用还会消耗能量;不足的部分通过燃烧 TRX 补上,而质押 TRX 可以持续获得配额。完整模型、质押相关命令以及解质押等待期,见能量与带宽。
单位:1 TRX = 1,000,000 SUN。JSON 载荷携带的是原始 SUN——int64 量级的金额是十进制字符串("balance": "1976489000" = 1976.489 TRX),有界的费用与计数(feeSun、energyUsed、netUsed)有时是 JSON 数字;文本输出显示的是人类可读的 TRX。--fee-limit 用来限制一次耗能调用最多可以燃烧多少 TRX,单位为 SUN。
手续费:evm-gas 模型¶
EVM 交易购买的是 gas:gas 上限(最多可消耗多少个单位)乘以每单位的价格。在 EIP-1559 链上,价格 = 网络给定的基础费用 + 优先费用(小费);在 legacy 链上则是单一的 gasPrice。chain prices 会报告当前适用的那一种。
未给出的值会从节点取得:gas 上限来自 eth_estimateGas(不做冗余放大),费用上限来自当前的基础费用,nonce 来自该账户的 pending 计数。用 --gas-limit、--max-fee、--priority-fee、--nonce 可以覆盖其中任意一项。若某个费用虽然可以签名但值得怀疑——小费被压到上限、上限低于当前基础费用——它会以 meta.warnings 报出,而不是被拒绝。
单位:1 币 = 10^18 wei,而 --max-fee / --priority-fee 以 gwei 给出(写作 25 或 25gwei)。JSON 载荷以字符串携带原始 wei。
币种本身是网络层面的事实,而不是家族层面的:eip155:1 用 ETH 支付,eip155:56 用 BNB。最小单位及其 18 位精度是共通的,符号则不是。
另请参见¶
networks——上面这张列表,以及它的 JSON 形式chain prices——当前一笔交易要花多少,两种模型都适用account info——TRON 上是带宽/能量使用情况,EVM 上是 nonce 和是否有合约代码- 快速上手——在 Nile 上给账户充值