把币转进一个代币的合约地址,币就落到了一段代码名下:没有私钥能替它签名,合约里没写把币转出去的功能,就没有人取得出来。买进一枚和正牌同名的代币,拿到的是另一份合约记下的另一种资产,名字再像,价值也和正牌无关。
这两种错都出在同一处:没分清链自己的币和链上合约发的币。主网币也叫原生币,由区块链本身的规则产生,比特币网络上的 BTC、以太坊上的 ETH、BNB Smart Chain 上的 BNB、TRON 上的 TRX 都是,这条链的手续费就用它付。代币(Token)没有自己的链,它是部署在某条链上的一份智能合约,合约里记着每个地址持有多少。USDT 就是代币。
主网币和代币有什么区别,USDT 算哪一种
主网币的余额由链的协议直接记在地址上;代币的余额写在合约里,谁能转、怎么转,由合约代码规定。
USDT 在很多条链上都有。发行方 Tether 在支持协议页上逐条列出了以太坊、TRON、Solana、Ton 等链上的 USD₮ 合约。每条链上的那一份都是单独部署的合约,地址各不相同,彼此不相通,所以转账前要先选对网络。
名字也定不了类别:别的链上一枚叫 ETH 或 BTC 的资产,只要靠合约记余额,在那条链上就是代币。
转代币为什么还要另备主网币付手续费
代币每动一次,都是在调用合约:请合约把一个地址名下的数额改记到另一个地址名下。调用合约要付这条链的手续费,而手续费只收主网币。
在以太坊上,Gas 费只能用 ETH 付。发一笔 ETH 消耗 21,000 个 Gas 单位,发一笔 ERC-20 代币是 65,000 个(ethereum.org 的数),多出来的是执行合约的计算量。
TRON 上,合约调用要消耗能量;能量没有免费额度,靠质押 TRX 获得,不够时从发送方余额里燃烧 TRX 抵扣(TRON 开发者文档)。TRC20 的 USDT 转账就是合约调用,账户里既没有能量也没有 TRX,就可能转不出去。
给别人转代币之前,先看钱包里有没有这条链的主网币,没有就先补。
币转到合约地址了,还能找回吗
收款用钱包地址。代币的合约地址只用来认出「这是哪个代币」,在钱包里添加代币、在区块浏览器里核对时才用到。
把代币转进它自己的合约地址,这个地址没有私钥,合约里又没写能动这部分余额的函数,就没有人能把它转出来。主网币转进合约地址,也只有代码能把它转出去。
从交易所提币时把合约地址当收款地址填进去,同样如此。按币安的忘填/错填标签找回申请指南,提币时输入了错误的地址,币安无法协助找回,建议联系对方平台;代币合约后面没有可联系的对方。
链上转账一经确认就撤不回来。0x 开头的合约地址填得进钱包地址的输入框,格式检查拦不住它。
同名的 USDT 代币不止一个:按合约地址认官方那份
部署代币合约时,名称、符号、小数位都由部署者自己填,链不查重名,所以同一条链上可以有很多份叫 USDT 的合约,钱包里显示的名字也来自合约自己的申报。能区分它们的只有合约地址。
官网或官方文档给的地址才算数
合约地址从发行方的官网或官方文档拿。USDT 的地址在 Tether 官网的集成说明里,以太坊上的 USD₮ 合约是 0xdac17f958d2ee523a2206206994597c13d831ec7。也有链不用合约地址:Polkadot AssetHub 上的 USD₮ 用的是 Asset ID 1984。
群聊、私信、搜索结果里的地址,都回到官方页面整串比对。差一个字符就是另一个地址,只核开头和结尾几位不够。
区块浏览器上的「已验证」能证明到哪一步
拿到官方地址,到这条链的区块浏览器里按地址搜,不按名字搜,代币页上的名称、符号、小数位应与官方说明一致。合约页上还会标出源码是否已验证(Verified)。验证过,说明公开的源码就是这个地址上正在运行的代码:它证明代码公开、可读,证明不了这份合约是发行方部署的,仿冒合约的部署者同样可以提交源码、通过验证。哪一份是官方的,仍以发行方公布的地址为准。
代币到账却看不到:先查钱包连的网络,再「添加代币」
先问清对方用的是哪条链,再看钱包连的是不是同一条。
钱包连的网络不对,这个代币不会出现:BNB Smart Chain 上的 USDT,钱包切在以太坊时看不到,同一个地址在两条链上各有各的余额。
网络对了还看不到,就用「添加代币」:把发行方公布的合约地址交给钱包,让它按这个地址显示这个代币的余额。
合约地址错误,先查这四处
添加代币或核对代币时合约地址对不上,可以从这几处查起:
- 拿了别的链上的地址。 同一种代币在每条链上是单独部署的合约,地址各不相同。以太坊上的 USD₮ 合约以 0x 开头,TRON 上的那一份是
TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t,以 T 开头。钱包连着哪条链,就填哪条链上的那一串。 - 少了或错了字符。 差一个字符就是另一个地址。复制时整串带上,贴完再和官方页面从头到尾对一遍。
- 这条链不用合约地址。 Polkadot AssetHub 上的 USD₮ 认的是 Asset ID 1984,没有一串合约地址可填。
- 把合约地址和收款地址用反了。 「添加代币」要的是合约地址,转账的收款栏要的是对方的钱包地址;合约地址填进收款栏,币就转进了合约。
测试网的币为什么不值钱
「主网币」的「主网」,指正式运行、交易带真实价值的那条链;测试网是给开发者在上主网前试运行升级和合约的另一套网络。测试网上的 ETH 按设计不该有真实价值,一般从水龙头网页免费领取(ethereum.org 对测试网的说明)。
同一个以太坊账户在各个网络都能用,余额和交易记录却不会从主网带过去。所以钱包切到测试网,主网余额看起来像没了,切回主网就在;在测试网上发起的转账只发生在测试网,连着主网的对方收不到,这条记录也证明不了主网上有钱到账。
在以太坊这类链上,测试网和主网的地址可以一模一样,要分开两者,看钱包和浏览器页面上标的网络名称。
主网币、代币、测试网币对照表
| 我手里的是什么 | 它的地址长什么样 | 该在哪核对 |
|---|---|---|
| 主网币:BTC、ETH、BNB、TRX | 没有合约地址,只有收款用的钱包地址,格式随链不同,例如 TRON 地址以 T 开头 | 钱包当前连接的网络,以及这条链区块浏览器上自己的地址页 |
| 代币:例如 USDT | 一份合约地址(有的链用资产编号);以太坊、BNB Smart Chain 上是 0x 开头的 42 个字符,与钱包地址同一格式 | 发行方官网或官方文档公布的地址,再到这条链的区块浏览器按地址比对 |
| 测试网上的币 | 在以太坊这类链上,可以和主网地址完全相同 | 钱包或区块浏览器页面上标出的网络名称 |
地址格式只能排除一部分错,同一种格式下是主网币、正牌代币还是仿冒合约,要看它在哪条链、记在哪份合约里。



