钱包要备多少 TRX 才能发送 USDT
在 TRON 上发送 USDT 的钱包有两个数字要弄对,而且它们很容易被当成一个。一个是费用:一笔转账从账户里拿走多少。另一个是账户必须持有的 TRX,以及交易必须带上的限额,转账才能成功。钱包上有能量时,TRX 只用来付字节:当天第一笔转账不用,之后每一笔大约 0.345 TRX。没有能量时,转给持有 USDT 的收款方每笔需要 6.5 TRX,转给没有 USDT 的收款方需要 13.1 TRX,外加同样的字节费。不论哪种情况,交易的 fee_limit 都必须够得着全部要烧的量。按费用备足了资金、却在第二个数字上不够的钱包,会以一种依然要花 TRX 的方式失败。
节点取两个限额中较小的那个
发送 USDT 是对一个智能合约的调用,调用运行之前,节点要先决定它最多可以花多少能量。它算出两个数,取较小的那个。第一个是账户付得起的量:账户已经持有的能量,加上它的 TRX 按每单位 100 sun 的协议价能买到的那么多单位。第二个是交易允许的量:它的 fee_limit 除以同样的 100 sun。
由此得出两条规则。账户上的 TRX 必须覆盖转账要烧的那部分能量,因为余额不够烧,就会把调用卡在它需要的量之下。而 fee_limit 必须允许这笔燃烧,因为限额低了,不管背后有多少 TRX,调用照样被同样严格地卡住。哪一条不够,调用都会中途以 OUT_OF_ENERGY 停下,而它一路烧掉的 TRX 就烧掉了(这个结果意味着什么)。
第二个数会绊住租能量或质押能量的钱包。节点也把账户已经持有的能量算进 fee_limit 里,算法和它对待将要烧掉的 TRX 一样。不带 fee_limit 签出的交易,限额为零,而限额为零,调用就一点能量也不许花,不管是代理来的还是烧出来的。不管钱包自己的提示怎么说,节点做的就是这道算术:账户自己的能量盖不住这次调用,节点就为其余部分烧 TRX,而转账只有在余额和限额都够到那么远时才能成功。
一个钱包在主网上的三次尝试
这条规则里 fee_limit 的那一面,可以在主网上直接看到。2026 年 10 月 6 日,我们在翻看 USDT 合约的公开记录时,碰到一个发送方,它在不到四十分钟里把同一笔转账试了三次。这笔转账需要 130,285 单位能量,这是收款方没有 USDT 时的数字,而这个账户自己没有能量,所以每一个单位都得靠烧 TRX 买来。每一行都是那笔交易自己的记录。
| 尝试,2026 年 10 月 6 日 | fee_limit | 结果 | 花掉的能量 | 扣走的 TRX |
|---|---|---|---|---|
| 第一次 | 1.1 TRX | OUT_OF_ENERGY | 11,000 单位 | 1.1 TRX |
| 第二次 | 无 | OUT_OF_ENERGY | 0 单位 | 0.339 TRX |
| 第三次 | 13.046 TRX | SUCCESS | 130,285 单位 | 13.3735 TRX |
第一次尝试恰好停在 11,000 单位,也就是它的 fee_limit 除以 100 sun。账户本来付得起更多:第三次它付了全部燃烧量,而它的记录显示这期间没有 TRX 进账。第二次尝试没有带 fee_limit,它的回执在合约的第一条指令处就报出限额为零。它没花能量,没挪动 USDT,却照样为它的字节付了费。第三次签出时的 fee_limit 略高于燃烧量,于是成功了。
那个发送方是个例外。同一个下午我们数了连续 12,000 次 USDT 调用,每一次都带着 fee_limit。
fee_limit 该设成多少
fee_limit 限定调用可以使用的能量,不论是持有的还是烧掉的,它本身不收任何费用。能量已经在钱包上的转账,一点也不烧,所以在有能量的钱包上,限额给得宽松是不花钱的。永远不会把转账卡在半路的取值,是较大的那个燃烧量,13.1 TRX。6.5 TRX 的限额,只有在转账落地时收款方仍然持有 USDT 的情况下才够用;余额为空的收款方要按较大的那个数计费,不论它曾经有没有持有过(这两个数从哪里来)。限额低于转账所需,即使钱包上已有它需要的全部能量,调用也会被叫停,因为节点把那些能量也算进了限额。
在 mode B 里,当我们替您广播一笔已签名的转账时,会在买任何能量之前,先按这条规则来要求它。fee_limit 如果按网络当前价格付不起这笔转账的能量,就会被拒绝,返回 400 invalid_request,details.reason 为 fee_limit_too_low。对这一笔转账做一次估价,会把它的燃烧量作为 burn_cost_trx 返回,而不低于这个数的限额总是能通过。
限额最要紧的,是成本在定价之后发生变化的转账。一个您检查时还持有 USDT、到转账落地时已经把余额清空的收款方,要按较大的那个数计费。如果钱包上的能量只够较小的那个数,节点就从 TRX 里烧掉差额。余额必须盖住这个差额,而 fee_limit 必须盖住整个较大的数,因为钱包原本持有的能量同样要算进去。两者哪个不够,转账都会以 OUT_OF_ENERGY 停下,而它一路烧掉的就烧掉了。
钱包上有能量时,剩下要付的是带宽
能量只付合约调用,别的一概不付。交易的字节另外计量,叫带宽(两只表放在一起看)。每个账户每天有 600 字节的免费带宽,大约够一笔 USDT 转账。超出之后,网络对每笔交易被计的全部带宽烧 TRX,价格是能量的十倍:一个字节的花费等于十个单位能量。
一笔 USDT 转账要被计几百字节的带宽。我们在 2026 年 9 月 2 日发出并量过的那一笔被计了 345,上面的三次尝试则在 339 到 345 之间。所以一旦免费额度在当天第一笔转账上用掉,之后的每一笔都要用 TRX 付它的字节,不论它的能量是租的、质押的还是烧的。一个完全没有 TRX 的钱包,仍然可以靠代理来的能量发出当天的第一笔转账,字节由免费额度来付;第二笔就需要账户上有 TRX(不持有 TRX 也能发送)。
转账之外的收费
发送钱包必须先在链上存在,才能往它上面代理能量(激活是什么),而往一个网络从没见过的地址转 TRX,就是为它建起账户的办法。有两个链上参数给建账户定价。我们没有真去激活过一个地址,看一次这样的转账是只付第一个还是两个都付,所以表里把两个都列了出来,它们的和就是为此要留的数额。另有两个参数,给交易上的备注和在多重签名权限下签出的交易定价。和激活不同,这两项在每一笔带备注或带多重签名权限的交易上都要收,所以以这种方式签名的热钱包,会让下面表里数到的每一笔转账都加上这个参数。这两种我们都没有发过,所以那几行给的只是参数,没有任何实测的东西。
| 链上参数,读于 2026 年 9 月 3 日 | 它给什么定价 | 值 |
|---|---|---|
getEnergyFee | 烧掉的一个单位能量 | 100 sun |
getFreeNetLimit | 账户每天得到的免费带宽 | 600 字节 |
getTransactionFee | 超出免费额度后的一个字节带宽 | 1,000 sun |
getCreateNewAccountFeeInSystemContract | 在系统合约里创建新账户 | 1 TRX |
getCreateAccountFee | 创建账户 | 0.1 TRX |
getMemoFee | 交易上的一条备注 | 1 TRX |
getMultiSignFee | 一笔多重签名交易 | 1 TRX |
一天转账要备的缓冲
合在一起,一个发送钱包一天要用掉的 TRX,取决于它的能量从哪里来,以及在烧能量的时候,它付的是哪一种收款方。下表假定每笔转账被计 345 字节带宽、免费额度用在当天第一笔转账上,并采用上面的参数。烧能量的钱包,每笔转账都要付 6.5 TRX 或 13.1 TRX 的能量,从第二笔起还要付字节费。钱包上有能量的,只付字节费。
| 每天的转账笔数 | 钱包上有能量,租的或质押的 | 没有能量,收款方持有 USDT | 没有能量,收款方没有 USDT |
|---|---|---|---|
| 1 笔转账 | 0 TRX | 6.5 TRX | 13.1 TRX |
| 10 笔转账 | 3.105 TRX | 68.105 TRX | 134.105 TRX |
| 100 笔转账 | 34.155 TRX | 684.155 TRX | 1344.155 TRX |
| 另加,为一个在定价之后清空了 USDT 的收款方 | 6.6 TRX | 6.6 TRX | 0 TRX |
租来的能量从您在我们这里的余额中付费,每笔转账的价格在价格页。质押的能量花的是为产生它而锁定的 TRX,这不在本表之内(质押与租用比较)。每天的数字,是每天补一次时必须留在钱包上的量。对任何单独一笔转账来说,门槛更小:这笔转账要烧的量(如果它要烧),加上它的字节费。
最后一行是为按较小的那个数买能量而留的余量。Auto-refill 会在转账之后把钱包补回到大约 131,000 单位,两种收款方都够用,所以在这样的钱包上,结果需要按较大的数计费的收款方,能量上是够的,余量降到零(Auto-refill 是怎么工作的)。不管能量来自哪里,fee_limit 仍然必须盖住这笔转账的全部能量,对于转账落地时可能没有 USDT 的收款方,那就是 13.1 TRX。
免费额度在一天里恢复得有多快,我们没有量过;表里假定只有当天的第一笔转账用上了它,所以对于把转账分散开发的钱包,带宽的数字是一个上界。
按节点对它的要求,从燃烧量来定每笔转账的限额:API 参考文档里的 POST /v1/estimate 及其 burn_cost_trx →