稳定币基础
TRC20 和 ERC20 的 USDT 差在哪,选错会怎样
同一家发行方在两条链上各部署了一份合约,余额相互独立。手续费的坑在于两条链收费方式不同:以太坊要备 ETH,波场要备 TRX 还牵扯能量和带宽。还有个反直觉的:从交易所提币时,TRC20 的手续费是各网络里最贵的之一。
同样是 USDT,提币时要你选 TRC20 还是 ERC20。这两个选项背后是两条完全不同的链,选错了轻则多付手续费,重则钱转不出去。
它们是两条链,不是两种 USDT
TRC20 是波场(TRON)上的代币标准,ERC20 是以太坊上的代币标准。所谓 TRC20 USDT 和 ERC20 USDT,是同一家发行方在两条不同链上各自部署的一份合约。
两份合约的地址完全不同:
- 以太坊上:
0xdAC17F958D2ee523a2206206994597C13D831ec7 - 波场上:
TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
地址格式也不同。波场地址以 T 开头,以太坊地址以 0x 开头,长度和字符集都不一样。这个差异反而是好事,格式不同的地址填错了多数钱包会直接拦住。
两条链上的余额是相互独立的。你在波场上有 1000 USDT,不代表在以太坊上有任何东西。
手续费的差别,以及那个坑
这是多数人选链的主要依据。波场上的转账成本通常远低于以太坊,这是事实。但两条链收费的方式不一样,波场那套机制经常让新手卡住。
以太坊:用 ETH 付 gas。
转 ERC20 USDT 需要消耗 gas,而 gas 只能用 ETH 支付。所以你的地址上除了 USDT,还必须有 ETH。
常见的困惑是:钱包里有 USDT,但转不出去,提示手续费不足。原因就是没有 ETH。USDT 本身不能用来付手续费。
gas 价格随网络拥堵程度浮动,同一笔转账在不同时段的成本可能差好几倍。
波场:用 TRX,或者用质押换来的资源。
波场的资源模型分两种:带宽和能量。普通的 TRX 转账主要消耗带宽,而调用智能合约(转 TRC20 USDT 就属于这一类)需要消耗能量。
获得能量有两条路:质押 TRX 换取能量额度,或者不质押,直接由系统按需扣除你的 TRX 折抵。
结果是同一个坑的波场版本:钱包里有 USDT 但没有 TRX,转账就发不出去。金额不大,但必须有。
还有一个容易被忽略的细节:向一个从未接收过 USDT 的新地址转账,消耗的资源比向已经持有过 USDT 的地址转账更多。所以第一笔转给新地址的成本会偏高一些。
但"从交易所提币"是另一笔账,TRC20 在这里最贵
上面讲的是链上转账成本。如果你是从交易所提币,付的不是链上费用,而是交易所自己定的提币费——这两个数字没有必然关系,而且结论经常是反的。
2026 年 9 月 18 日拉币安的公开接口,USDT 各网络的提币费(单位 USDT):
| 网络 | 提币费 |
|---|---|
| Tron (TRC20) | 1.5 |
| Ethereum (ERC20) | 0.3 |
| Solana | 0.3 |
| Arbitrum One | 0.1 |
| Polygon POS | 0.07 |
| AVAX C-Chain | 0.04 |
| opBNB | 0.015 |
| Plasma | 0.012 |
| BNB Smart Chain | 0.01 |
TRC20 是这张表里最贵的,比 BSC 贵 150 倍。 同一天 Bitget 的接口也是 TRC20 收 1.5,而它的 Plasma 只收 0.001。
这和"波场链上转账便宜"并不矛盾,两件事而已:链上便宜说的是你自己从钱包发交易的成本;提币费是交易所的定价,它可以定成任何数字,通常反映的是这条链的流量成本和平台策略,不是当下的实际链上开销。
所以"为了省手续费选 TRC20"这个习惯,在从交易所提币的场景里往往是亏的。真正该做的是提币前看一眼当时页面上列的各网络费用——差别经常是一两个数量级。
自己查最新数字(免 key,浏览器直接打开):
https://www.binance.com/bapi/capital/v1/public/capital/getNetworkCoinAll
搜 "coin":"USDT" 找到 networkList,看每条里的 withdrawFee(提币费)和 withdrawMin(最小提币额)。Bitget 的对应接口是 https://api.bitget.com/api/v2/spot/public/coins。
这些数字平台随时调,所以文章里写死的只能当参考,查一次比看任何转述都准。顺带提一句,从这个接口还能看出某条链当前有没有被临时关闭充提,选链前值得看一眼,具体写在"交易所提币被冻结"。
到账速度和确认数
两条链的出块速度和交易所要求的确认数不同,实际到账时间以平台显示为准。
一般来说波场确认较快,以太坊在网络拥堵时可能明显变慢。但这不是选链的主要依据,因为差异通常在分钟级别,而选错链的后果是不可逆的。
接收方支不支持,这才是决定性因素
前面说的手续费、速度都是次要的。选链的第一原则是:接收方必须支持你选的那条链。
往交易所充值,就要看这家交易所的这个充值地址支持哪条链,充值页面会明确列出。往个人钱包转,就要确认对方钱包里有那条链的地址,并且对方给你的地址是那条链上的地址。
对不上的后果分几种情况,有的能救有的救不回,判断方法写在"转错链能不能救回来"。
有一个特别容易出错的场景:以太坊、BNB Chain、Polygon 这些链的地址格式完全相同,都是 0x 开头。地址看起来没问题,链选错了照样出事,而且不会有任何格式校验来拦你。这一类是转错链事故里最常见的。
黑名单在两条链上是独立的
这一点和本站主题直接相关。
每条链上的 USDT 合约各自维护一份黑名单。以太坊上某个地址被拉黑,不自动导致波场上的地址被拉黑,反过来也一样。
所以查地址状态的时候,要在对应链的合约上查,不能一条链查完就当全部查过了。查法写在"免费查地址是否被拉黑"。
两条链上合约的函数名是一样的,都叫 isBlackListed,操作方式也一样,只是要在各自的区块链浏览器上进行:波场用 Tronscan,以太坊用 Etherscan。
不只这两条链
USDT 还发行在 BNB Chain、Polygon、Arbitrum、Solana 等多条链上,各有各的合约地址、手续费代币和生态。
到底有多少条,查一次就知道:

这是 https://api.gateio.ws/api/v4/spot/currencies/USDT 的返回,浏览器直接打开就能看。注意每条链后面的 withdraw_disabled 和 deposit_disabled——为 true 表示这条链当前停充或停提。
选择逻辑是一样的:接收方支持哪条,你就用哪条;同时确认自己有那条链的原生代币来付手续费。
新增的链要注意两件事:一是合约地址必须从可靠渠道核对,不同链上的 USDT 合约地址都不一样,核对方法写在"假 USDT 怎么认";二是小众链的兑换深度和交易所支持程度较差,资产转过去之后可能不容易转出来。
实操上的几条结论
提币前确认三件事,顺序固定。接收方支持的链、你选的链、粘贴的地址属于哪条链。三者必须一致。
准备好手续费代币。用哪条链就在那条链上留一点原生代币:波场留 TRX,以太坊留 ETH,BNB Chain 留 BNB。数量不用多,但不能是零——地址上只有 USDT 没有原生代币,是一笔都发不出去的,这是新手最常卡住的地方。
如果已经卡在这一步(钱在那儿但转不动),从交易所买最小额度的对应代币提过来就行,注意提币时选和你 USDT 同一条链。详细做法写在"转错链能不能救回来"里"看到币了但转不出去"那一节。
第一次往新地址转,先小额试一次。这是唯一能真正验证链和地址都对的方法。多花的手续费远小于转错的代价。
别只为了省手续费换链。省下的手续费,和选错链可能损失的本金不是一个量级。接收方支持才是第一位的。