TON 地址格式详解
The Open Network 上的每个账户只有一个身份,却有多种等价的文本写法。本指南说明 TON 地址是如何构成的、EQ、UQ、kQ 与 0Q 前缀分别代表什么,以及为什么同一个钱包在不同格式下看起来完全不同。
TON 地址究竟包含什么
TON 地址由两部分组成:标明账户所在链的 workchain ID,以及标识该链上合约的 256 位账户 ID。主链(masterchain)的 workchain 为 -1,但您日常遇到的绝大多数钱包和代币都位于基础链(basechain),即 workchain 0。
原始格式(raw)
原始格式直接写作 workchain:account_id,其中账户 ID 使用小写十六进制。它不含校验和,也不带网络或可退回标志,因此用于代码、API 和区块浏览器内部,而不用于分享给他人。
0:83dfd552e63729b472fcbcc8c45ebcc6691702558b68ec7527e1ba403a0f31a8用户友好格式
用户友好格式把同一个账户打包成 36 字节,再编码为 48 个 base64 字符。多出来的字节正是地址可以安全复制粘贴的原因:校验和能发现输入错误,标志字节则记录了网络以及是否可退回。
| 组成部分 | 长度 | 含义 |
|---|---|---|
| 标志字节 | 1 | 可退回为 0x11,不可退回为 0x51;再加 0x80 表示该地址仅限测试网。 |
| Workchain | 1 | 基础链为 0x00,主链为 0xFF。 |
| 账户 ID | 32 | 256 位账户 ID——与原始地址中十六进制部分的值完全相同。 |
| 校验和 | 2 | 对前 34 字节计算的 CRC-16。正是它让输错的地址立即校验失败。 |
EQ、UQ、kQ 与 0Q 前缀的含义
用户友好地址的前两个字符直接反映了标志字节和 workchain,因此无需解码就能一眼看出所属网络和可退回设置。
| 前缀 | 网络 | 可退回 | Workchain | 典型用途 |
|---|---|---|---|---|
| EQ | 主网 | 是 | 基础链(0) | 智能合约与区块浏览器——所有在投递失败时应退回资金的场景。 |
| UQ | 主网 | 否 | 基础链(0) | 钱包与交易所充值地址。单纯接收 TON 时最稳妥的默认选择。 |
| kQ | 测试网 | 是 | 基础链(0) | 测试网可退回地址,用于合约开发与测试。 |
| 0Q | 测试网 | 否 | 基础链(0) | 测试网不可退回地址,用于测试钱包。 |
| Ef | 主网 | 是 | 主链(-1) | 主链可退回地址——验证者与系统合约。 |
| Uf | 主网 | 否 | 主链(-1) | 主链不可退回地址——基础设施之外很少见到。 |
TON 地址示例
下面五个字符串是同一个账户,分别以 TON 支持的每种格式书写。请注意,只有前两个字符和结尾的校验和发生了变化,地址中间部分始终不变,因为账户 ID 从未改变。
| 格式 | 示例 |
|---|---|
| 原始格式(raw) | 0:83dfd552e63729b472fcbcc8c45ebcc6691702558b68ec7527e1ba403a0f31a8 |
| 可退回(EQ) | EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N |
| 不可退回(UQ) | UQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqEBI |
| 测试网可退回(kQ) | kQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqKYH |
| 测试网不可退回(0Q) | 0QCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqPvC |
值得了解的编码规则
- 用户友好的 TON 地址长度恒为 48 个字符。若长度不符,则它不是有效的 TON 地址。
- Base64 区分大小写。EQCD… 与 eqcd… 是不同的字符串,只有大小写完全一致才能通过校验。
- 有两套字母表在流通:标准 base64 使用 + 与 /,URL 安全的 base64 则改用 - 与 _。两者解码后是同一个账户,TON 生态更倾向 URL 安全形式。
- 原始格式没有校验和,输入错误不会被自动发现。转账前请务必核对原始地址。
如何转换 TON 地址
- 把一个或多个地址粘贴到转换器中。原始格式、EQ、UQ、kQ 和 0Q 都可以识别,也可以用空格或换行分隔整份列表一次粘贴。
- 并排查看所有等价形式——可退回、不可退回、原始与标准化格式,开启开关后还包括测试网的两种形式。
- 复制所需的形式,或把整张表格导出为 CSV。数据不会离开浏览器:转换在本地完成。
常见地址问题
- 钱包显示 UQ,区块浏览器却显示 EQ
- 两者是同一个账户。区块浏览器通常展示可退回的 EQ 形式,而钱包在充值时展示不可退回的 UQ 形式。任选其一进行转换,比较原始地址即可确认一致。
- 交易所拒绝了我的 TON 地址
- 多数交易所要求使用主网不可退回的 UQ 形式充值。若接收合约尚未部署,使用可退回的 EQ 地址可能导致转账被退回。
- 测试网地址为什么在主网无法使用?
- kQ 或 0Q 地址设置了「仅限测试网」标志,主网钱包会拒绝它。底层账户 ID 完全相同——将其转换为 EQ 或 UQ 形式,即可在主网使用同一账户。
- Telegram 钱包地址是 TON 地址吗?
- 是的。Telegram Wallet、Tonkeeper 等 TON 钱包使用完全相同的地址格式,只是各应用展示的形式不同。