Skip to main content
🛡️ Tronsell Wiki

Fee Limit System — TRON Transaction Fee Protection

Complete guide to TRON's Fee Limit System. Learn what fee limit is, how it protects you from excessive fees, how to set it, and best practices to avoid transaction failures.

🛡️ Fee Limit at a Glance
PurposeProtect from excessive fees
UnitSUN (1 TRX = 1,000,000 SUN)
USDT Safe Limit15,000,000 SUN (15 TRX)
If ExceededTransaction fails (reverts)
Can be 0Yes (requires Energy/Bandwidth)

🛡️ What is the Fee Limit System?

The Fee Limit System in TRON is a critical safety mechanism that protects users from excessive transaction fees. It defines the maximum amount of TRX you are willing to burn for a single transaction if you lack sufficient Energy or Bandwidth.

When you send a transaction, you specify a feeLimit value (in SUN). If the actual fee required to execute the transaction exceeds this limit, the transaction will fail (revert) instead of burning more TRX than you intended. This prevents unexpected high fees due to network congestion, complex contract logic, or errors.

💡 Why Fee Limit Matters

Without a fee limit, a smart contract bug or sudden network congestion could burn an unexpectedly large amount of TRX from your wallet. The fee limit acts as a financial safety net, ensuring you never pay more than you're willing to.

⚙️ How Fee Limit Works

The fee limit system operates on a simple principle: compare actual fee vs. fee limit.

// Fee limit check during transaction execution
if (actualFee <= feeLimit) {
  // Transaction executes successfully
  burnTRX(actualFee);
} else {
  // Transaction fails (reverts)
  revert("Fee limit exceeded");
  // No TRX is burned
}

The actual fee is calculated based on the Energy and Bandwidth consumed by the transaction, converted to TRX at the current network price. If you have sufficient staked Energy or Bandwidth, the actual fee is zero — and your fee limit doesn't matter (as long as it's ≥ 0).

💡 Fee Limit vs. Fee

Fee limit is a cap, not the actual fee. If your transaction requires 5 TRX and your fee limit is 15 TRX, you pay 5 TRX — not 15. The limit only matters if the actual fee would exceed it.

⚙️ How to Set a Fee Limit

You can set a fee limit when sending transactions through various TRON interfaces:

1. Using TronWeb (JavaScript)

// Set fee limit in TronWeb
const tx = await contract.transfer(to, amount).send({
  feeLimit: 15_000_000 // 15 TRX in SUN
});

2. Using TronLink (Wallet)

In TronLink, when you confirm a transaction, you can adjust the Fee Limit slider or input field in the transaction confirmation dialog. The wallet typically suggests a default value based on the transaction type.

3. Using TronScan (Explorer)

When interacting with contracts via TronScan's "Contract" tab, you can specify the fee limit in the transaction parameters before triggering the contract call.

Transaction TypeRecommended Fee Limit (TRX)Recommended Fee Limit (SUN)
USDT TRC20 transfer (activated wallet)1515,000,000
USDT TRC20 transfer (new wallet)2020,000,000
Simple TRX transfer11,000,000
Contract deployment200-500200,000,000 - 500,000,000
Complex DeFi interaction50-10050,000,000 - 100,000,000
With sufficient Energy0 (or 1)0 (or 1,000,000)

🔄 Setting Fee Limit to 0

You can set feeLimit: 0 for a transaction. This means you are not willing to burn any TRX — the transaction will only succeed if you have sufficient Energy and Bandwidth to cover the entire cost.

Setting fee limit to 0 is useful when:

  • You have staked TRX for Energy and want to force the use of staked resources without burning TRX.
  • You want to test whether you have enough resources before executing a transaction.
  • You want to avoid any TRX burn for cost-sensitive operations.
⚠️ Important

If you set fee limit to 0 and don't have enough Energy or Bandwidth, your transaction will fail with a "fee limit exceeded" error. No TRX will be burned, but the transaction won't go through.

⚠️ Common Fee Limit Issues & Solutions

IssueCauseSolution
"Fee limit exceeded" error Actual fee > feeLimit Increase feeLimit and retry, or stake for Energy
Transaction keeps failing Fee limit too low for contract complexity Check contract gas usage and increase limit accordingly
Unexpected high fee Fee limit set too high, contract consumed more than expected Set a reasonable fee limit based on transaction type
Fee limit 0 fails Insufficient Energy/Bandwidth Stake for Energy, buy/rent Energy, or increase fee limit
Wallet suggests too low limit Default estimate may be inaccurate Manually adjust to a safe value (e.g., 15 TRX for USDT)

🏆 Fee Limit Best Practices

  • Know your transaction type — USDT transfers need ~15 TRX, simple TRX transfers need ~1 TRX, complex DeFi may need 50-100 TRX.
  • Always set a fee limit — never leave it unbounded. Even if you have Energy, set a reasonable fallback limit.
  • Check your Energy balance first — if you have enough Energy, you can set a low fee limit (like 1 TRX) as a safety net.
  • Use 15 TRX for USDT transfers — this covers the typical burn range of 13-15 TRX. For new wallets, use 20 TRX.
  • Monitor actual fees — after successful transactions, check how much TRX was actually burned to refine your fee limit estimates.
  • Consider staking — if you make frequent transactions, staking for Energy is more cost-effective than paying fees.
  • Use fee limit 0 for testing — when testing contract interactions, set fee limit to 0 to verify you have enough Energy without risking TRX burn.
💡 Pro Tip

For USDT TRC20 transfers, start with feeLimit: 15_000_000 (15 TRX). If you get a "fee limit exceeded" error, increase to 20,000,000 and try again. Once you know the exact fee, you can fine-tune the limit for future transactions.

⚖️ Fee Limit vs. Gas Limit (Ethereum)

TRON's fee limit system is similar to Ethereum's gas limit, but there are important differences:

FeatureTRON Fee LimitEthereum Gas Limit
UnitSUN (TRX)Gas units
What it capsTRX burned if no resourcesTotal gas used
Free transactionsYes (with staked Energy)No
Resource modelDual (Energy + Bandwidth)Single (gas)
Fallback behaviorBurns TRX if resources insufficientAlways burns ETH

The key advantage of TRON's system is that you can avoid fees entirely by staking TRX for Energy, while still having a fee limit as a safety net.

Frequently Asked Questions

What is fee limit in TRON?

Fee limit is the maximum amount of TRX a user is willing to burn for a transaction if they lack sufficient Energy or Bandwidth. It acts as a safety mechanism to prevent excessive fees. If the actual fee exceeds the fee limit, the transaction will fail (revert) rather than burning more TRX than intended.

How do I set a fee limit for a TRON transaction?

You can set fee limit when sending a transaction through TronWeb, TronLink, or other TRON-compatible wallets. In TronWeb, you pass a 'feeLimit' parameter in the transaction options. In TronLink, you can adjust it in the transaction confirmation dialog. The value is specified in SUN (1 TRX = 1,000,000 SUN).

What happens if my fee limit is too low?

If your fee limit is too low, the transaction will fail with a 'fee limit exceeded' error. The transaction will not be processed, and no TRX will be burned. You will need to increase the fee limit and retry the transaction. This is a safety feature that prevents your wallet from being drained by unexpected high fees.

What is a safe fee limit for USDT TRC20 transfers?

For a standard USDT TRC20 transfer, a fee limit of 15 TRX (15,000,000 SUN) is generally safe. This covers the typical 13-15 TRX burn if you don't have enough Energy. For transfers to new wallets, you may want to set it slightly higher at 20 TRX to account for the extra Energy consumption.

Can I set fee limit to 0 TRX?

Yes, you can set fee limit to 0 TRX, but this only works if you have sufficient Energy and Bandwidth to cover the transaction entirely. If you lack any resources, the transaction will fail. Setting fee limit to 0 is a way to ensure you only use staked resources and never burn TRX.

Does fee limit affect transactions with sufficient Energy?

No. If you have enough staked Energy to cover the transaction, the actual fee is 0 TRX, and your fee limit doesn't matter (as long as it's ≥ 0). The fee limit only comes into play when you need to burn TRX to cover missing resources.

⚡ Build with Tronsell Energy

Integrate Tronsell Energy into your zero-fee USDT transfer contracts. Simple API, instant delivery.