OUT_OF_ENERGY on TRON: 65,000 Energy Won’t Cover a 130,285 Transfer

A standard USDT transfer on TRON charges 64,285 Energy when the recipient already holds USDT, and 130,285 Energy when they have never held it. At the current chain rate of 100 sun per Energy, that is 6.4285 TRX and 13.0285 TRX. Every guide quoting 65,000 and 131,000 is rounding up a receipt it did not read. The rounding is harmless in one direction and expensive in the other. 3

The numbers we actually read off the chain

We pulled six consecutive USDT transfers from block 87,500,238 and read each receipt individually. Five charged 64,285 Energy. One charged 130,285. All six used exactly 345 Bandwidth. That clean split is the whole article in one line: nothing about your transfer is variable except the state of the recipient’s USDT balance.

CaseEnergy chargedBandwidthTRX burned at 100 sunCost in USD at TRX $0.331
Recipient already holds USDT64,2853456.4285$2.13
Recipient has never held USDT130,28534513.0285$4.31

Checked 28 October 2026. Energy unit price 100 sun (getEnergyFee), Bandwidth rate 1,000 sun per byte (getTransactionFee), both read live from wallet/getchainparameters.

The gap between the two cases is 66,000 Energy — almost exactly a doubling, and the reason is not mysterious. A TRC-20 transfer to an address with no existing USDT balance has to initialise a new storage slot for that token. Storage writes are the expensive part of the TVM instruction set, and an initialisation is effectively a second full pass over the same storage work.

Two different failures, and only one of them is an error

This is where most troubleshooting advice goes wrong. “Not enough Energy” produces two completely different outcomes, and they cost you different things.

Outcome one: the transfer succeeds and TRX silently disappears. If your wallet holds 64,285 Energy but the call needs 130,285, TRON does not stop. It consumes your Energy, then burns TRX for the remaining 66,000 Energy at 100 sun each — 6.6 TRX — and the transfer completes. Nothing errors. Nothing warns you. You just paid 6.6 TRX you did not plan for, and the only place it appears is the TRX balance.

Outcome two: the call reverts with OUT_OF_ENERGY. This happens when the caller cannot fund the remainder at all — the TRX balance is too low, or the transaction’s fee_limit is set tighter than the shortfall. TRON’s documentation is explicit about the consequence: if the caller’s Energy usage would exceed the budget implied by fee_limit, the transaction reverts with OUT_OF_ENERGY, and Energy already consumed is still charged up to that limit. The USDT never moves. The Energy is gone.

Energy heldTRX available for the shortfallResultWhat you pay
130,285 (correct)Not neededSuccess3.91 TRX of rented Energy at 30 sun
64,285 (wrong size)EnoughSuccess, silentlyEnergy plus 6.6 TRX burned
64,285 (wrong size)Too low, or fee_limit too tightReverts, OUT_OF_ENERGYEnergy consumed still charged, no transfer
0EnoughSuccess13.0285 TRX burned

The useful takeaway is counterintuitive: an under-provisioned wallet usually does not fail. It overpays. Failure requires a second condition on top — an empty or under-funded TRX balance, or a fee_limit that caps the budget below what the call needs.

The charging order TRON actually applies

Per the official resource documentation, a smart contract call is charged in this order. The contract’s deployer is assigned a configured share of the Energy (consume_user_resource_percent), subject to the contract’s origin_energy_limit and the deployer’s own staked or delegated Energy. The caller then covers the remainder with staked or delegated Energy first, and TRX is burned only for what is left. The caller’s total budget is capped by fee_limit — and that cap covers the caller’s available Energy as well as the TRX-burn portion, not just the burn.

That last clause is the one people miss. fee_limit is not a cap on how much TRX you are willing to burn. It is a cap on your entire caller-side Energy budget, expressed in sun. A fee_limit of 15 TRX (the chain maximum, getMaxFeeLimit = 15,000,000,000 sun) allows a total caller-side Energy budget of 150,000 Energy, whether that comes from your own Energy or from a burn. Set fee_limit to 6.4 TRX and you have capped yourself at 64,000 Energy of caller-side budget — which is why a wallet that holds 130,000 Energy can still revert with OUT_OF_ENERGY if someone configured a tight limit.

Why over-provisioning is cheap and under-provisioning is not

The asymmetry is stark once you price both directions. Being 715 Energy over on a standard transfer — 65,000 rented against 64,285 needed — costs 0.0215 TRX at a 30 sun rental rate. That is a fifth of a cent. Being 65,285 Energy short on a first-time transfer costs 6.53 TRX burned at the chain rate. Same mistake, opposite direction, 300 times the money.

Provisioning choiceEnergy rentedRental cost at 30 sunTRX burned for shortfallTotalDifference
Rent exactly what you need130,2853.91 TRX03.91 TRXbaseline
Rent the standard 65,00065,0001.95 TRX6.53 TRX8.48 TRX+4.57 TRX
Rent nothing, burn it all0013.03 TRX13.03 TRX+9.12 TRX

So the standard 65,000 pack is not a disaster on a first-time transfer. It is a 4.57 TRX surcharge, and it only becomes a hard failure if the wallet cannot fund that surcharge. If you send to a new address or an exchange deposit address and you are unsure which case applies, always provision for 130,285. Exchange deposit addresses are swept back to zero routinely, which makes them behave like new recipients far more often than people expect.

The Bandwidth rule nobody explains correctly 9

Your transfer also needs 345 Bandwidth, and Bandwidth settles differently from Energy. Energy can be paid partly in resources and partly in TRX. Bandwidth cannot. Each payment source must cover the full byte cost on its own; the network does not combine staked Bandwidth with free Bandwidth, and does not burn TRX only for the uncovered portion.

SituationFree Bandwidth remainingResultBurned
First transfer of the day, nothing staked600Free quota covers 345 in full0
Second transfer of the day, nothing staked255Quota cannot cover 345 in full0.345 TRX for all 345 bytes
Any transfer, 345+ Bandwidth staked or delegatedanyStaked Bandwidth covers it0

The second row is the one that generates support tickets. You have 255 free Bandwidth left, you need 345, and the network burns 0.345 TRX for the entire 345 bytes rather than for the 90 bytes you were short. Those 255 units stay in the account, but they cannot be combined with a burn to cover the gap.

What this costs at volume 4

If you run payouts, the per-transaction error compounds silently and shows up as an unexplained TRX drain rather than an error log.

Transfers per day to new addressesExtra TRX per dayExtra TRX per yearExtra cost per year at $0.331
1045.716,680$5,520
50228.583,400$27,600
100457.0166,800$55,200
5002,285.0834,000$276,000

That is the cost of doing nothing wrong except renting the round number. It is not a failure rate, it is a provisioning rate.

How to check your own receipt instead of trusting a guide 8

Any number in this article is a reading, not a promise. Here is how to confirm it for your own transaction in under a minute.

  • Open the transaction on TRONSCAN and switch to the Energy tab. Read Energy Usage Total. That is the number you were charged, not the number an estimator predicted.
  • In the same receipt, read energy_penalty_total. On our six sample transfers it was 49,635 for standard transfers and 100,635 for first-time transfers — a substantial share of the total that the dynamic Energy model adds on top of base execution cost. This field is why no round number reproduces your bill exactly.
  • Read net_usage. It should be 345 for a USDT transfer. If it is higher, something beyond a plain transfer is happening — a memo, a multi-send, or contract logic.
  • Multiply Energy by 100 sun and divide by 1,000,000 to get TRX. Compare that against your TRX balance movement.

If your receipt disagrees with this article, the receipt is right and the article is stale. That is the correct relationship between a document and a blockchain, and it is why the date at the bottom matters more than any single figure above it.

When you are sizing an order rather than diagnosing a failure, run the amount through our TRON energy cost calculator and it will price the Energy against the current chain rate instead of a cached one.

FAQ

Why did my USDT transfer fail with OUT_OF_ENERGY when my wallet showed Energy?
Because fee_limit caps your total caller-side Energy budget, and the call needed more than that budget allowed — even if your Energy balance alone looked sufficient. A tight fee_limit produces exactly the same error as an empty wallet.

Does a failed TRON transaction still cost TRX?
Yes. Energy consumed before the revert is still charged, and the 345 Bandwidth is still consumed. The USDT does not move, but the resources are spent.

Is 65,000 or 131,000 Energy correct?
Neither is a receipt value. The charged amounts we read were 64,285 and 130,285. If you must use a round number, round up — 65,000 and 131,000 are safe ceilings, and the overpayment is negligible.

How do I know whether the recipient already holds USDT?
Check the address on TRONSCAN. A non-zero USDT balance or any USDT transfer history in either direction means the cheaper case at 64,285. If the address has never held USDT, or it is an exchange deposit address, assume 130,285.

Can I get burned TRX back?
No. Burning is the network’s fallback settlement, not a deposit. The only way to avoid the burn is to hold or rent Energy before you send.

Why does renting from a platform cost less than burning?
Burning is priced by the chain at 100 sun per Energy. Rental is priced by a market, and no rational seller charges more than the burn price for the same unit, because burning is the buyer’s alternative. If a quote is near or above 100 sun, you are not getting a market price. 7

Data, scope and disclaimer

All figures checked 28 October 2026 against live chain parameters and transaction receipts, with TRX priced at $0.331001. Energy and Bandwidth rates are chain parameters and change by governance vote; rental prices are market prices and change continuously. Nothing here is investment advice, and any cost figure should be re-derived from your own receipt before you commit to a volume decision.

If you are still deciding between staking, burning and renting rather than debugging an error, the USDT transaction fee guide compares all three on the same transfer. If you already know you need Energy rather than an explanation, start from renting Energy, and if you are choosing between providers, the rental marketplace comparison lists what actually differs between them. Our buying guide covers the order mechanics end to end.