FAILED — OUT OF ENERGY

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.
The exact error

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.
Why it happens

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.
The fix

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.
For developers

Catching it before it costs you

A contract call can be simulated before it is signed. The estimate comes back in Energy units, so comparing it with the account's available Energy tells you whether to top up first — and you never pay for a failed transaction to find out.
Estimate before sending — 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`);
}
A public API buys Energy from code, so step 3 tops up instead of throwing. The reference is at getgas.io/api/v1/docs; questions go to support@getgas.io.
FAQ

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.