Stablecoin Transaction Fees: ERC-20 vs TRC-20, Measured

When a customer pays you in USDT or USDC, the blockchain network fee is paid by their wallet, not yours. You receive the full token amount at your own address. That is the short answer to the question most merchants are actually asking, and it is true for every non-custodial gateway including ours. The complication is that you pay network fees anyway — on every refund, every payout, and every move of funds out to an exchange — and those transactions are the ones where the chain you support starts to matter.
How much is it? We measured it. On 31 August 2026 a USDT or USDC transfer on ERC-20 cost about $0.02, and the same transfer on TRC-20 cost $2.11 to $4.36. That is roughly a hundred times more expensive on Tron than on Ethereum, which is the opposite of what nearly every payment gateway comparison page still says, including older pages on this site that we are working through. We took the numbers ourselves from public chain endpoints rather than copying them from another article, the method is below, and we re-take them on the first of every month.
The practical consequence is narrow and specific: on a $25 order, a TRC-20 network fee of $2.13 is 8.5% of the basket sitting on top of your price, while the same payment on ERC-20 costs your buyer two cents. Below roughly a $266 order value, the TRC-20 network fee your customer pays is larger than the entire 0.8% gateway fee you pay. Above about $500 it stops being a factor on either rail. We sell a payment gateway, so read the recommendation at the end with that in mind — but anyone can reproduce these measurements in a minute.
Who pays the network fee, under each integration model
“Who pays gas” has three different answers depending on how the payment reaches you, and merchants get burned by conflating them. On Ethereum and Tron the sender pays the fee, and the fee is paid in the native asset — ETH or TRX — not deducted from the stablecoin being transferred. So the merchant-side rule is straightforward at the point of sale and less so afterwards.
| Payment path | Who pays the network fee at checkout | What lands on you later |
|---|---|---|
| Non-custodial gateway (funds go straight to your wallet) | Buyer’s wallet, in ETH or TRX | You pay a fee on every outbound transfer: refunds, supplier payments, moving funds to an exchange |
| Custodial processor (funds sit with the provider first) | Buyer’s wallet | The processor pays to sweep and to pay you out, then recovers it through a withdrawal fee, so you pay it repackaged as a percentage |
| Hosted checkout page, payment button, or emailed invoice | Buyer’s wallet | Same as non-custodial above — the entry point changes, the settlement path does not |
| Manual address handed to the customer | Buyer’s wallet | Same outbound costs, plus reconciliation work no fee schedule shows you |
One failure mode is worth naming because it looks like a network fee and is not. When a buyer pays from an exchange account rather than a self-custody wallet, the exchange applies its own flat withdrawal fee and usually deducts it from the amount sent. The order then arrives short by a few dollars and your checkout marks it underpaid. Nothing about the chain caused that, and switching chains will not fix it — it is an exchange policy, and the fix is a tolerance threshold on your side plus clear instructions to send the invoice amount net of their fee.
What a stablecoin transfer actually costs (measured 31 August 2026)
Here is the measurement. Every figure in this table came from a public endpoint we queried ourselves on 31 August 2026, at spot asset prices recorded at the same moment. Nothing in it is quoted from a third party.
| Rail | Measured cost per transfer | What drives the number | Fee paid in |
|---|---|---|---|
| USDT / USDC on ERC-20 (Ethereum) | $0.02 typical; $0.01–$0.05 across the sampling window | ~65,000 gas at a 0.14 gwei effective price, ETH at $2,451.78 | ETH |
| USDT / USDC on TRC-20 (Tron) | $2.11–$2.15 to an address that already holds the token; $4.24–$4.36 to a first-time address | ~65,000 / ~130,000 energy at a fixed 100 sun per energy, TRX at $0.3257 | TRX |
| Bitcoin on-chain | ~$0.12 next block; ~$0.04 at a six-block target | ~141 vB for a 1-in-2-out transfer at 1.072 / 0.40 sat/vB, BTC at $77,992 | BTC |
| Bitcoin Lightning | Under $0.01 on a $200 payment | Routing fees quoted in parts per million of the amount | BTC |
How we took the measurement
Ethereum. We sampled the base fee across 1,024 consecutive blocks — about 3.4 hours — using eth_feeHistory against two independent RPC providers, and compared the two series to rule out a single provider reporting badly. The distribution: minimum 0.070 gwei, median 0.116 gwei, 90th percentile 0.170 gwei, maximum 0.265 gwei. Add a median priority tip of 0.05 gwei and the effective price a wallet would actually pay is about 0.14 gwei. A standard ERC-20 token transfer consumes roughly 65,000 gas.
Tron. Energy is not auctioned, so there is nothing to sample — there is a parameter to read. We read getEnergyFee from the TronGrid chain parameters endpoint, which returned 100 sun per unit of energy. A TRC-20 transfer to an address that already holds the token burns roughly 65,000 energy; to an address receiving that token for the first time it burns roughly 130,000, because the contract has to write a new storage slot.
Bitcoin. We took Blockstream’s fee estimates: 1.072 sat/vB for next-block inclusion and 0.40 sat/vB at a six-block target, applied to a 141 vB single-input, two-output transaction.
Asset prices are spot at the time of measurement. All four numbers are reproducible from public endpoints in under a minute, which is the point — a fee claim you cannot check is not evidence.
Why the standard advice is now backwards
The received wisdom that Ethereum is expensive and Tron is cheap was accurate for years and has not been re-checked. Two independent changes inverted it.
Tron’s fee is administered rather than auctioned. Because getEnergyFee is a governance parameter denominated in TRX, a USDT transfer burns approximately the same energy whatever the network load, and the dollar cost of that transfer tracks the TRX price and governance votes rather than congestion. A rail with a fixed native-token price is cheap when that token is cheap and expensive when it is not.
Ethereum moved the other way. EIP-4844 introduced blob-carrying transactions, which moved rollup data off the execution layer, and the block gas limit has been raised repeatedly since. Base fees outside demand spikes now sit in the low tenths of a gwei, which is where our 0.116 gwei median came from.
Three caveats that keep this honest
Ethereum’s fee is auctioned, so a congestion event can push a single transfer above a dollar within one block. Our sampling window was 3.4 hours on one day; it is a snapshot of a normal period, not a guarantee. Tron also runs dynamic energy pricing — getAllowDynamicEnergy is switched on with a maximum multiplier of 3.4x — so a heavily used contract can settle above the floor we measured. And a Tron user who has staked TRX to obtain energy pays close to nothing per transfer, which is exactly why high-volume crypto-native buyers still prefer that rail and why you should keep offering it. The measurement describes the cost to a buyer paying fees from their balance, which is most retail buyers.
At what order value does the chain actually touch your margin
Network fees are flat per transaction, while your gateway fee is a percentage. That single structural difference is what makes low-ticket orders the only place chain choice matters. Below is the measured fee expressed as a share of order value.
| Order value | ERC-20 ($0.02) | TRC-20, existing holder ($2.13) | TRC-20, first-time address ($4.30) | Bitcoin on-chain ($0.12) |
|---|---|---|---|---|
| $25 | 0.08% | 8.5% | 17.2% | 0.48% |
| $50 | 0.04% | 4.3% | 8.6% | 0.24% |
| $100 | 0.02% | 2.1% | 4.3% | 0.12% |
| $250 | 0.008% | 0.85% | 1.7% | 0.05% |
| $1,000 | 0.002% | 0.21% | 0.43% | 0.01% |
Read the middle two columns against the 0.8% you pay the gateway. The TRC-20 network fee exceeds your entire gateway fee on any order below about $266, and below about $538 for a buyer whose destination address is new. On ERC-20 the equivalent threshold is roughly $2.50, which is another way of saying it never applies. Bitcoin on-chain crosses at about $15 at next-block priority, and Lightning does not cross at any realistic basket size.
The counter-intuitive part: TRC-20 is the expensive rail for cheap orders
This is where the industry rule of thumb does real damage. A merchant selling $20 to $60 items who reads “Tron is the low-fee chain” and offers TRC-20 as the default is putting a fee equal to 4% to 17% of the basket in front of their buyer, at a moment in the funnel where any unexpected cost is an abandonment risk. The same merchant offering ERC-20 first is asking for two cents.
The judgment rule we would use: if your average order value is under $250, make ERC-20 the first stablecoin option shown and keep TRC-20 available for buyers who ask for it. Between $250 and $500 the difference is real but no longer decisive, so order the options by whatever your buyers already hold. Above $500 the network fee is noise on either rail and you should optimise for wallet coverage instead of cost. Re-check these thresholds monthly, because they move with the ETH and TRX prices, not with anything you control. Our full comparison of crypto payment gateway fees sets these network costs against the processing rates the six main providers charge, which is the larger number on your monthly bill.
The network fees that do land on you
Everything above concerns the buyer’s side. Three merchant-side costs are genuinely yours, and they are the ones no fee schedule lists.
Refunds. An on-chain refund is a new outbound transaction that you pay for. On ERC-20 that costs you about two cents. On TRC-20 it costs $2.11 to $4.36, and the higher figure applies whenever you are refunding to an address that has not held that token before. If you run a 5% refund rate on 400 TRC-20 orders a month, that is 20 refunds at up to $4.36, so roughly $87 of pure cost against $0.40 on Ethereum. Build the refund cost into your policy rather than discovering it at month end.
Cashing out. Moving funds from your wallet to an exchange is one more outbound transfer at the same per-transfer cost, with one trap: exchange deposit addresses are frequently issued fresh per user and per asset, so a TRC-20 payout to a new deposit address falls into the $4.24–$4.36 bracket rather than the $2.11–$2.15 one. Send once at the end of the week rather than after every order, since the cost is per transaction and not per dollar.
Consolidating Bitcoin. This one is specific to Bitcoin and catches merchants out because it is invisible until it arrives. Ethereum and Tron are account-based, so a hundred payments simply add to one balance and cost nothing to combine. Bitcoin is not: each payment arrives as a separate unspent output, and spending them later costs about 68 vB per extra input. Derived from the sat/vB rates we measured, that is roughly $0.06 per input at next-block priority and $0.02 at a six-block target. Sweeping a month of 200 Bitcoin orders in one transaction therefore costs about $11.40 if you are in a hurry and about $4.30 if you can wait an hour. Not large, but it is a cost that only exists on one of the four rails, and it scales with your order count rather than your revenue.
Custodial processors do not remove any of this. They pay the sweep and the payout themselves and recover it through a withdrawal fee — CoinGate, for example, publishes a crypto withdrawal fee of €0.50 plus 0.5%, rising to €0.50 plus 1.5% when a conversion is involved, verified on 31 August 2026. On $50,000 of monthly settlement that repackaged network cost is $250 to $750, against a measured on-chain cost of a few dollars. That gap is the subject of our breakdown of the hidden costs in custodial crypto payment gateways.
What to do with this
Four concrete actions, in the order we would take them.
- Offer both stablecoin standards, and control the display order. Support USDT and USDC on both ERC-20 and TRC-20 so buyers pay on the rail their wallet is already funded on, but put ERC-20 first while Ethereum is this cheap and your average order is under $250.
- Set an underpayment tolerance. Exchange withdrawal fees deducted from the sent amount are the most common cause of a short payment. A tolerance of a few dollars, with the balance carried or refunded by policy, removes most manual reconciliation.
- Batch your outbound transfers. Weekly payouts rather than per-order, and one Bitcoin sweep at a six-block fee target rather than next-block, cut the merchant-side cost by roughly two thirds on the figures above.
- Re-check the numbers monthly. Both rails move with their native token prices. We re-measure on the first of each month and update this page; if you rely on the thresholds here, verify them at the same interval or read the version stamped with the current month.
On product choice, our position is easy to state and easy to discount: Aurpay is a non-custodial gateway charging 0.8% per transaction, where the payment settles directly into your own wallet, which is why the network fees on this page are the buyer’s at checkout and only yours on the way out. We support BTC, Bitcoin Lightning, ETH, USDT on ERC-20 and TRC-20, USDC on ERC-20 and TRC-20, and DAI on ERC-20 — the four chains measured above and nothing beyond them. If you are setting up both USDT standards for the first time, our guide to accepting USDT on ERC-20 and TRC-20 covers the configuration, and the gateway fee comparison puts the 0.8% against what the other providers charge. For merchants still deciding whether any of this beats card processing, we ran that arithmetic separately in stablecoin versus credit card fees. Developers building a custom checkout will find the payin and payout endpoints in the REST API documentation.

