TON 地址转换器:Raw ↔ 可弹回 ↔ 不可弹回

粘贴任意形式的 TON 地址,即可得到 raw 形式的 workchain:hash、可弹回的 EQ… 和不可弹回的 UQ… 形式,以及仅限测试网的变体,并验证 CRC16 校验和。

48 个字符的用户友好 base64 形式(可弹回 EQ…、不可弹回 UQ…、测试网 kQ… / 0Q…),或 raw 形式的 workchain:hash。

由浏览器中的 JavaScript 检查。地址绝不会被上传或存储。

什么是 TON 地址转换器?

TON 地址转换器在 The Open Network 上同一账户的 raw 形式(workchain:hash,例如 0:83df…31a8)与 TON 地址文档定义的用户友好形式之间进行转换:后者是由标志位、工作链、哈希和 CRC16 校验和组成的 36 字节结构,经 base64 编码后成为常见的 48 字符 EQ…(可弹回)和 UQ…(不可弹回)字符串。所有形式指向的都是同一个智能合约账户,区别仅在于告诉发送方如何对待它。

用户友好地址的结构

字节字段含义
0标签0x11 可弹回,0x51 不可弹回;仅限测试网则加 0x80(0x91、0xD1)
1工作链0x00 基础链,0xFF 主链(有符号字节 -1)
2–33账户哈希合约初始状态(代码 + 数据)的 SHA-256
34–35CRC16对第 0–33 字节计算的 CRC-16/XMODEM,大端序

36 字节的 base64 恰好是 48 个字符且无填充,这就是为什么所有用户友好的 TON 地址长度都相同。前两个字符来自标签和工作链字节的高位:主网工作链 0 为 EQ 和 UQ,主链为 Ef 和 Uf,测试网为 kQ 和 0Q。

示例

以 raw 地址 0:83dfd552e63729b472fcbcc8c45ebcc6691702558b68ec7527e1ba403a0f31a8 为例。在前面加上标签 0x11 和工作链 0x00,追加这 34 字节的 CRC-16/XMODEM,再做 base64url 编码,就得到可弹回形式 EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N。把标签改为 0x51 会改变首字符和校验和,得到 UQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqEBI。中间的 43 个字符完全相同,因为哈希相同。把任一字符串粘贴到上方,工具就会还原 raw 形式并显示全部四种变体。

可弹回还是不可弹回:该用哪个

  1. 向个人转账。使用不可弹回的 UQ… 形式。如果对方的钱包合约尚未部署(全新钱包),可弹回转账会被退回,对方什么也收不到。
  2. 调用智能合约。使用可弹回的 EQ… 形式。如果调用失败,合约会弹回消息,TON 扣除手续费后退回给你,而不会被卡住。
  3. 交易所充值。按交易所的说明操作,包括 memo 或 comment。地址形式不会改变目的地,但标志位决定失败时会发生什么。

为什么 CRC 检查很重要

TON 地址是 base64,一个字符错了就会悄无声息地改变哈希,而改变后的哈希就是另一个(很可能不存在的)账户。CRC16 能捕获所有单字符错误和大多数多字符错误。本工具拒绝转换任何校验和不匹配的用户友好地址,也绝不会猜测你的本意。raw 地址根本没有校验和,因此转换 raw 地址时,输出的正确性完全取决于你粘贴的十六进制;请把首尾字符与来源比对。

典型用途

本站的其他地址工具:加密货币地址验证器和 Tron 地址转换器。

常见问题

EQ… 和 UQ… TON 地址有什么区别?

它们是同一个账户。EQ… 是可弹回形式(标签字节 0x11):如果目标合约不存在或拒绝消息,TON 会退回给发送方。UQ… 是不可弹回形式(标签 0x51):即使钱包尚未初始化,转账也会入账。钱包应用在收款时显示 UQ…;EQ… 用于智能合约。

我应该给对方哪种形式来接收 TON?

不可弹回的 UQ… 形式,尤其是对尚未发出过任何交易的新钱包。向未初始化的钱包进行可弹回转账会被退回,收款方什么也收不到。钱包部署后两种形式都可用,而且大多数现代钱包会替你处理这个选择。

raw 0:… 形式是什么?

即规范地址:工作链(钱包所在的基础链为 0,主链为 -1)加上合约初始代码和数据的 256 位哈希,写成 workchain:hex。它没有校验和,也没有弹回标志,这正是用户友好形式存在的原因。

kQ… 和 0Q… 是什么意思?

就是同样的两种形式,只是标签字节中设置了仅限测试网位(0x80):kQ… 是可弹回测试网地址,0Q… 是不可弹回测试网地址。主网钱包会拒绝它们。底层的 raw 地址与主网完全相同。

TON 地址校验和是如何计算的?

36 字节的用户友好形式由标签(1 字节)、工作链(1 字节)、哈希(32 字节)和对前 34 字节计算的 2 字节 CRC-16/XMODEM(多项式 0x1021,初始值 0)组成,然后进行 base64 或 URL 安全 base64 编码。工具会重新计算 CRC,并拒绝不匹配的地址。

为什么同时显示 - _ 和 + / 两个版本?

标准 base64 使用 + 和 /,URL 安全 base64 使用 - 和 _。两者解码出的字节相同,都是有效的 TON 地址。区块浏览器和钱包通常显示 URL 安全形式以便嵌入链接;转换器两者都会显示。