TRON transactions require two types of resources: bandwidth and energy. Bandwidth covers the byte cost of transaction data; energy covers the processing cost of executing smart contracts.
Bandwidth Points
All transaction types on the TRON network consume Bandwidth Points (BPs). One BP equals one byte of transaction data.
Obtaining Bandwidth Points
TRON accounts 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: 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 replenishes over 24 hours.
Burning TRX for BPs
If you do not have enough BPs to perform a transaction, you can burn TRX for BPs. To calculate the BPs received through burning TRX, use the Tronscan Resource Calculator.
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. 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.
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 do not have enough energy to perform a transaction, TRX is burned to cover the shortfall. 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. When creating a transaction, you can specify the max fee via the Fireblocks API or SDK. Once the transaction is signed and broadcast, no further changes are possible. Fireblocks sets a high 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.
Note: If your Fireblocks vault address has been delegated energy or bandwidth by an external wallet (a wallet outside of Fireblocks), the platform may not reflect those delegated resources when calculating available fees. This can cause transactions to be blocked by balance checks even when sufficient resources are available on-chain. If you are in this situation, contact Fireblocks Support to enable your workspace to transact correctly.
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.