OUT_OF_ENERGY: what it means and how to fix it
Your transaction ran out of Energy while it was executing, so the network stopped it and marked it FAILED. Nothing was transferred, but the TRX burned on the way is gone. The fix takes about a minute: put 65,000 Energy on the address and send again.Where you are seeing it
The same failure surfaces with different wording depending on what you are looking at.TronScan
The transaction page shows a red FAILED status with the result OUT OF ENERGY, and the token transfer section is empty.Your wallet
Trust Wallet, TronLink and others usually say the transaction failed, or that there is not enough Energy or TRX for the network fee.Your code
A receipt from tronweb or the HTTP API carries result: 'OUT_OF_ENERGY' inside receipt, with the transaction's own result set to FAILED.Transaction receipt — 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 at 0 means the address had no Energy of its own, so every unit had to be paid for by burning TRX. energy_fee is in sun: 5,000,000 sun is 5 TRX burned on a transfer that never happened, and it stopped there because that was the fee limit — energy_usage_total of 50,000 is short of the 65,000 the transfer needed.Three causes, in order of how common they are
The address has no Energy at all
Energy has no free daily allowance — an address only has it from staked TRX or from a delegation. Without it, every USDT transfer is paid for by burning TRX, and if the TRX balance or the fee limit will not cover the whole 65,000 Energy, the transaction dies partway through.The recipient turned out to be a new address
Sending to an address that holds no USDT costs about 131,000 Energy instead of 65,000 — the contract has to create a new balance record. Most exchange deposit addresses behave this way, which is why transfers to an exchange fail more often.The fee limit was set too low
The fee limit caps how much TRX a transaction may burn. Wallets often default to a limit that was generous a year ago and is not any more, and the transaction stops the moment it hits the cap.What to do right now
Confirm it is Energy
Look the address up in the checker: it shows the Energy it has now against the amount a transfer needs.Get the Energy
Rent 65,000 Energy for an hour — 2.73 TRX — or 131,000 if the recipient holds no USDT yet.Wait for the delegation
It lands in 3–10 seconds and is visible on the Resources tab of the address on TronScan.Send again
Resend the same transfer. With Energy in place the network spends the delegation instead of burning TRX.Catching it before it costs you
Estimate before sending — javascript// 1. What the transfer will cost, in Energyconst {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 nowconst res = await tronWeb.trx.getAccountResources(sender);const available = (res.EnergyLimit ?? 0) - (res.EnergyUsed ?? 0);// 3. Top up before signing, never after OUT_OF_ENERGYif (available < needed) {throw new Error(`Need ${needed - available} more Energy — rent it first`);}
Frequently asked questions
What does OUT_OF_ENERGY mean?
It means the transaction started executing, used up all the Energy the address had and all the TRX the fee limit allowed to burn, and still was not finished. The network marked it FAILED. The transfer did not happen, but the Energy and the burned TRX are spent either way.
Will I get the burned TRX back?
No. TRON burns that TRX as payment for the computation the network already did, and a failed transaction is not an exception. Nobody — not the wallet, not the service, not the validators — can return it. The only way to avoid it is to have the Energy in place before sending.
Did my USDT get sent?
No. A failed transaction changes no balances: your USDT never left, and the recipient never received anything. Check the hash on TronScan — a failed transfer shows a red FAILED status and no token movement.
Why did the same transfer work yesterday?
Energy from staked TRX regenerates over 24 hours, so an address can have enough for one transfer a day and none for the second. The cost also depends on the recipient: 65,000 Energy when they already hold USDT, about 131,000 when they do not.
Raising the fee limit fixes it — is that a good idea?
It stops the failure, but it does not make the transfer cheap: a higher fee limit just lets the network burn more TRX, around 6.85 TRX for a normal transfer. Renting the Energy costs 2.73 TRX for the same result.
How do I stop it happening again?
Check the address before sending and rent Energy whenever it is short. For wallets that send all day, auto top-up buys Energy as soon as the balance drops below a threshold, so no transfer ever starts without it.