Energy and Bandwidth

July 15, 2026 · View on GitHub

TRON's fee model, and why stake exists. Units first: 1 TRX = 1,000,000 SUN; all CLI amounts named *-sun and all JSON amounts are raw SUN strings.

Two resources instead of gas

ResourceConsumed byFree allowance
Bandwidthevery transaction's bytessmall daily per-account quota
Energysmart-contract execution (TRC20 transfers included)none

When a transaction needs more than you have, the node burns TRX from your balance to cover the difference. For contract calls, --fee-limit (on tx send / contract commands, default 100000000 SUN) caps that burn — a safety valve against a buggy or hostile contract consuming unbounded energy.

Check your standing anytime:

wallet-cli account info --network tron:nile -o json | jq '.data.resources'
{ "bandwidth": { "used": 0, "limit": 600 }, "energy": { "used": 0, "limit": 888 } }

How you obtain resources: staking

Staking locks TRX (it remains yours) in exchange for a continuous resource quota plus TRON Power (governance votes). The stake command group maps 1:1 onto the chain operations:

CommandChain operationEffect
stake freezeFreezeBalanceV2Lock TRX for --resource energy|bandwidth
stake unfreezeUnfreezeBalanceV2Request unlock; resources drop immediately, TRX enters a waiting period (14 days on mainnet)
stake withdrawWithdrawExpireUnfreezeClaim unstakes whose waiting period has expired
stake cancel-unfreezeCancelAllUnfreezeV2Roll all pending unstakes back to staked
stake delegateDelegateResourceV2Lend resource quota to --receiver (optionally --lock for --lock-period blocks, ~3 s/block)
stake undelegateUnDelegateResourceV2Reclaim a delegation

Delegation moves the resource quota, never the TRX — the stake stays on the owner's account. A common setup: a cold account holds the stake and delegates energy to a hot account that does the transacting.

Practical consequences

  • A "free" TRX transfer isn't always free: past the bandwidth quota, it burns TRX.
  • A TRC20 transfer with zero energy burns noticeably more — check --dry-run's fee block before complaining about balances.
  • rpc_error mentioning bandwidth/energy/balance during send → fund, stake, or wait for the daily quota; see Troubleshooting.

See also

Staking walkthrough · Networks · account info