FAILED — OUT OF ENERGY

OUT_OF_ENERGY:含义及解决方法

您的交易在执行过程中能量耗尽,网络因此中止了它并标记为 FAILED。没有任何资产被转出,但途中燃烧的 TRX 已经没了。解决只需大约一分钟:为地址准备 65,000 能量,然后重新发送。
具体报错

您在哪里看到它

同一种失败,根据您查看的位置不同,显示的措辞也不同。

TronScan

交易页面显示红色的 FAILED 状态,结果为 OUT OF ENERGY,代币转账部分为空。

您的钱包

Trust Wallet、TronLink 等钱包通常会提示交易失败,或提示能量或 TRX 不足以支付网络手续费。

您的代码

来自 tronweb 或 HTTP API 的回执在 receipt 中带有 result: 'OUT_OF_ENERGY',而交易本身的 result 为 FAILED。
交易回执 — json
{
"ret": [{ "contractRet": "OUT_OF_ENERGY" }],
"receipt": {
"energy_usage": 0,
"energy_fee": 5000000,
"energy_usage_total": 50000,
"net_usage": 345,
"result": "OUT_OF_ENERGY"
}
}
energy_usage 为 0,表示该地址自身没有能量,每一单位都只能通过燃烧 TRX 支付。 energy_fee 的单位是 sun:5,000,000 sun 就是在一笔根本没有完成的转账上燃烧了 5 TRX,而它停在这里,是因为这正是手续费上限—— energy_usage_total 为 50,000,低于转账所需的 65,000。
为什么会发生

三种原因,按常见程度排序

地址完全没有能量

能量没有每日免费额度——地址只能通过质押 TRX 或他人代理获得能量。没有能量时,每笔 USDT 转账都靠燃烧 TRX 支付;如果 TRX 余额或手续费上限不足以覆盖全部 65,000 能量,交易就会在中途失败。

收款方原来是新地址

向没有 USDT 的地址转账约需 131,000 能量,而不是 65,000——合约需要新建一条余额记录。大多数交易所充值地址都是这种情况,所以转到交易所更容易失败。

手续费上限设得太低

手续费上限(fee limit)限制一笔交易最多可燃烧多少 TRX。钱包的默认上限往往是一年前还算宽裕、如今已经不够的数值,交易一碰到上限就会停止。
解决方法

现在该怎么做

确认是能量问题

在能量查询工具中查一下地址:它会显示当前能量与一笔转账所需数量的对比。

获取能量

租用 65,000 能量一小时——3.03 TRX——如果收款方还没有 USDT,则租 131,000。

等待能量代理

3–10 秒内到账,可在 TronScan 上该地址的“资源”标签页中看到。

重新发送

重新发送同一笔转账。有了能量,网络会消耗代理来的能量,而不是燃烧 TRX。
开发者

在造成损失之前发现问题

合约调用可以在签名前先模拟执行。估算结果以能量为单位返回,与账户的可用能量比较,就知道是否需要先补充——无需为一笔失败的交易付费来试错。
发送前先估算 — javascript
// 1. What the transfer will cost, in Energy
const {energy_used: needed} = await tronWeb.transactionBuilder.estimateEnergy(
usdtContract,
'transfer(address,uint256)',
{},
[{type: 'address', value: recipient}, {type: 'uint256', value: amount}],
sender,
);
​
// 2. What the address has right now
const res = await tronWeb.trx.getAccountResources(sender);
const available = (res.EnergyLimit ?? 0) - (res.EnergyUsed ?? 0);
​
// 3. Top up before signing, never after OUT_OF_ENERGY
if (available < needed) {
throw new Error(`Need ${needed - available} more Energy — rent it first`);
}
公开 API 可以通过代码购买能量,这样第 3 步就会自动补充能量,而不是抛出错误。文档见 getgas.io/api/v1/docs;如有问题请发邮件至 support@getgas.io。
FAQ

常见问题

OUT_OF_ENERGY 是什么意思?

它表示交易已开始执行,耗尽了地址上的全部能量以及手续费上限允许燃烧的全部 TRX,但仍未完成。网络将其标记为 FAILED。转账没有发生,但能量和已燃烧的 TRX 都已消耗。

已燃烧的 TRX 能退回吗?

不能。TRON 燃烧这些 TRX,是为网络已经完成的计算付费,失败的交易也不例外。没有人——钱包、服务商、超级代表都不行——能退回它。唯一的办法是在发送前准备好能量。

我的 USDT 转出去了吗?

没有。失败的交易不会改变任何余额:您的 USDT 从未转出,收款方也没有收到任何东西。在 TronScan 上查看交易哈希——失败的转账会显示红色的 FAILED 状态,且没有代币变动。

为什么同样的转账昨天能成功?

质押 TRX 获得的能量在 24 小时内逐步恢复,所以一个地址可能够转一笔,却不够转第二笔。费用还取决于收款方:对方已持有 USDT 时需 65,000 能量,没有时约需 131,000。

提高手续费上限就能解决——这是好办法吗?

它能避免失败,但不会让转账变便宜:提高手续费上限只是让网络燃烧更多 TRX,一笔普通转账约 6.85 TRX。租用能量达到同样效果只需 3.03 TRX。

如何避免再次发生?

发送前先查询地址,能量不足时就租用。对于全天都在转账的钱包,自动补充会在余额低于阈值时立即购买能量,确保每笔转账开始前都有能量。