TRON transactions require two types of resources: bandwidth and energy, both measured in TRX. Bandwidth is the TRX cost per byte of transaction data, while energy represents the processing power consumed when executing a smart contract.
Bandwidth Points
All transaction types on the TRON network consume Bandwidth Points (BPs). One BP equals one byte of transaction data.
Obtaining Bandwidth Points
Every TRON account can obtain BPs in three ways:
- Free daily allotment
- Staking TRX
- Burning TRX
Free daily allotment of BPs
Every TRON account receives 600 free BPs per day, enough to cover two basic transactions.
Staking TRX for BPs
You can obtain additional BPs by staking TRX in the TRON network's Delegated Proof of Stake (DPoS). All staked accounts receive a share of BPs from a fixed amount within a shared BP pool; the share you receive depends on the amount of TRX you staked. To calculate the BPs received through staking, use the Tronscan Resource Calculator.
Note
Currently, staking and delegation is supported only via dApps, such as Tronscan, using WalletConnect or the Fireblocks Browser Extension. See Staking TRON (TRX) with Freeze and Delegation.
After you spend your staked BPs, the amount received through staking is gradually replenished over 24 hours.
Burning TRX for BPs
If you find that you are short of the BPs necessary to perform a transaction, you can burn TRX for BPs. To calculate the BPs received through burning TRX, use the Tronscan Resource Calculator.
Note
If there are not enough BPs for a transaction, the TRX necessary to fulfill the BP requirement will automatically be burned.
Consuming Bandwidth Points
Bandwidth Points are required for every type of transaction on the TRON network, including read-only queries and smart contract interactions.
The process for BP consumption is:
- Check the total available BPs: Sum the BPs obtained from staking and the free daily BPs.
-
If the total available BPs are sufficient to cover the transaction's byte size:
- Use those BPs to complete the transaction.
-
If the total available BPs are insufficient:
- Use up all available BPs (staking + free).
- Calculate the remaining number of BPs needed.
-
Burn TRX to cover the missing BPs:
- TRX will be automatically burned at the current TRX-per-BP rate to cover the remaining bandwidth.
- If there is not enough TRX to cover the cost, the transaction will fail due to insufficient bandwidth.
Note
Sending TRX to a non-existent account will automatically create that account. Currently, creating a new account costs 1.0 TRX in fees. Activating the new account requires transferring more than 0.1 TRX to the account.
Energy
Energy and BPs are required to send TRC-20 tokens over the TRON network, typically during smart contract execution.
Obtaining Energy
You can obtain energy by staking or burning TRX during a smart contract execution.
Staking TRX for Energy
All staked accounts receive a share of energy from a fixed amount within a shared energy pool; the share you receive depends on the amount of TRX staked. To calculate the energy received through staking, use the Tronscan Resource Calculator. The energy allotted through staking accumulates gradually.
Burning TRX for Energy
If you lack the energy necessary to perform a transaction, TRX is burned for energy. To calculate the energy received through burning TRX, use the Tronscan Resource Calculator.
Consuming Energy
Energy costs are calculated by simulating the smart contract on a TRON node before executing the transaction. After the energy cost is calculated and submitted, you pay the fee to execute the transaction.
Note
TRON fees are pre-determined and therefore cannot be used to prioritize transactions.
When you execute a contract, the required energy is calculated and immediately deducted based on the contract's instructions. The priority for consuming an account's energy is:
- Energy obtained from staking TRX
- Energy obtained from burning TRX
Fireblocks has encoded a max fee to prevent accidental overdrawing. You can view or retrieve the max fee setting via the Fireblocks platform or API when submitting a transaction. When creating the transaction, you can specify the max fee. Once the transaction is signed and broadcast, no further changes are possible. Fireblocks sets a generous max fee by default to reduce the risk of a failed transaction due to insufficient funds.
Native TRX transaction fees
For native TRX transactions (e.g., TRON accounts sending TRX between themselves), the fee is currently about 0.3 TRX.
TRC-20 transaction fees
Transactions involving TRC-20 tokens, such as USDT and smart contracts, require BPs and energy. These fees are based on the Dynamic Energy Model, which takes into account the state of the destination account.
If the destination account already contains the token type being transferred, the fee will be significantly lower. For example, sending USDT to a destination account that already contains USDT costs approximately 7 TRX; sending to an account that does not contain USDT costs approximately 14 TRX.
Fee limits
For TRC-20 and other smart contract transactions, the fee_limit parameter defines the maximum amount of TRX that can be consumed to cover transaction costs. Usually, the actual fee charged is less than the fee_limit. However, if the actual fee exceeds the fee_limit, the transaction will fail.
Note
You can limit the maximum energy cost by setting the fee_limit parameter when you create or sign the transaction via the Fireblocks API or SDK.
Contract termination cost
When executing smart contracts, fees depend on the outcome:
- If the contract fails due to a revert exception, only the energy used by the execution instructions is deducted.
- If the contract terminates abnormally (e.g., due to a timeout or bug), the maximum available energy for the transaction is deducted.