什么是 Tron 地址转换器?
Tron 地址转换器在同一个 20 字节账户的三种写法之间转换:钱包显示的 Base58Check T… 形式(前缀字节 0x41,然后是 20 字节,再加 4 字节双重 SHA-256 校验和)、节点 API 和原始交易使用的 42 位 41… 十六进制形式,以及 EVM 工具使用的 0x… 形式。三者指向同一个账户。
三种形式详解
- Base58(T…):34 个字符,主网上始终以 T 开头。这是 TronLink、Trust Wallet、Binance 和 OKX 显示和接受的形式。它包含 4 字节双重 SHA-256 校验和。
- 十六进制(41…):42 个十六进制字符:版本字节 0x41 后跟 20 字节账户。用于 TronGrid REST 响应、
tronweb内部和原始交易。 - EVM 风格(0x…):同样的 20 字节加 0x 前缀,见于 TVM 合约日志和 Solidity 工具。这里同时显示 EIP-55 校验和与小写两种变体。
转换原理
- Base58 → 十六进制:解码 Base58,验证并去掉最后 4 个校验和字节,将剩余 21 字节输出为十六进制。
- 十六进制 → Base58:取 41 + 40 位十六进制,附加 SHA-256(SHA-256(bytes)) 的前 4 字节,用 Base58 编码。
- 0x → Tron:在 40 位十六进制前加上 41,然后按上述方式编码。
示例
USDT TRC-20 合约的 Base58 形式是 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t。解码得到 21 字节载荷 41a614f803b6fd780986a42c78ec9c7f77e6ded13c 加 4 个校验和字节。去掉 41 前缀并加上 0x,得到 EVM 形式 0xa614f803b6fd780986a42c78ec9c7f77e6ded13c,这就是同一合约在 TVM 事件日志中的样子。
格式速览
| 形式 | 长度 | 校验和 | 使用场景 |
|---|---|---|---|
| Base58 T… | 34 个字符 | 有,4 字节 | 钱包、交易所、二维码 |
| 十六进制 41… | 42 个十六进制字符(21 字节) | 无 | TronGrid、tronWeb、protobuf 交易 |
| EVM 0x… | 42 个字符(20 字节) | 可选的 EIP-55 大小写 | TVM 日志、Solidity 工具 |
典型用途
- 查询只接受十六进制的
/v1/accounts/<hex>类 API 端点。 - 从合约数据中解码 TRC-20
transfer调用的to参数。 - 在为提现记账前,检查客户发来的充值地址是否是有效的 Tron 地址。
用 USDT TRC-20 二维码生成器为已验证的地址生成收款码。