TONify 在 TON App 开发者工具榜排名第 9

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 表示该地址仅限测试网。
Workchain1基础链为 0x00,主链为 0xFF。
账户 ID32256 位账户 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 地址

  1. 把一个或多个地址粘贴到转换器中。原始格式、EQ、UQ、kQ 和 0Q 都可以识别,也可以用空格或换行分隔整份列表一次粘贴。
  2. 并排查看所有等价形式——可退回、不可退回、原始与标准化格式,开启开关后还包括测试网的两种形式。
  3. 复制所需的形式,或把整张表格导出为 CSV。数据不会离开浏览器:转换在本地完成。
返回转换器

常见地址问题

钱包显示 UQ,区块浏览器却显示 EQ
两者是同一个账户。区块浏览器通常展示可退回的 EQ 形式,而钱包在充值时展示不可退回的 UQ 形式。任选其一进行转换,比较原始地址即可确认一致。
交易所拒绝了我的 TON 地址
多数交易所要求使用主网不可退回的 UQ 形式充值。若接收合约尚未部署,使用可退回的 EQ 地址可能导致转账被退回。
测试网地址为什么在主网无法使用?
kQ 或 0Q 地址设置了「仅限测试网」标志,主网钱包会拒绝它。底层账户 ID 完全相同——将其转换为 EQ 或 UQ 形式,即可在主网使用同一账户。
Telegram 钱包地址是 TON 地址吗?
是的。Telegram Wallet、Tonkeeper 等 TON 钱包使用完全相同的地址格式,只是各应用展示的形式不同。