VeilSwap
← All posts
Guides2026-11-099 min read

Swap Your Whole Balance: Gas You Must Keep (2026)

We measured one transfer on eight chains: $4.13 on a fresh TRON address, $0.023 on Ethereum, $0.105 on Bitcoin. What to keep in reserve before you sweep a balance.

Two balances, and the second one stops you. At 18:03 UTC on 2026-11-09 I pulled TRON block 87,857,929: 62 USDT transfers, of which I sampled 40 receipts. Twenty-six used 64,285 energy; twelve used 130,285. The expensive ones are transfers into an address whose USDT balance slot was zero at that moment - which is exactly what a swap deposit address is, freshly generated per order. The bill was 13.0285 TRX; at TRX $0.316917 that is $4.13, whatever the amount transferred. Your USDT balance does not pay it. TRX does, from a different balance, and if that balance is zero the transaction never leaves the wallet. (XMR to USDT exit)

What each chain charges for one transfer. Measured 18:02-18:05 UTC, converted at CoinGecko spot (BTC $74,697, ETH $2,123.01, XMR $594.21, LTC $51.47, SOL $86.53, TRX $0.316917, BNB $686.23, AVAX $8.63, POL $0.126156, ZEC $1,169.49). Ethereum: 63,203 gas was the median of ten USDT transfers in block 26,379,003; at the 0.173031729 gwei base fee that is 0.0000109 ETH, $0.023. BSC at 0.05 gwei: $0.0022. Polygon at 156.26 gwei but POL is cheap: $0.0013. Arbitrum $0.0027, Base $0.0008, Avalanche $0.0014. Solana: 5,000 lamports ($0.00043) plus 1,488,440 lamports of rent ($0.129) if the token account must be created. Bitcoin: 141 vB at 1 sat/vB is $0.105, with 68,014 transactions and 36.21 MvB in the mempool. Litecoin $0.00007, Monero $0.018-0.026 (20,000 piconero per byte), Zcash $0.117 (10,000 zats). (SOL to XMR guide)

Two cases, and only one of them is dangerous. When you sell a token - USDT, USDC, any ERC-20 - the network fee is charged in the native coin and the token amount is untouched: 100 USDT quoted at 0.14790427 XMR still has to arrive as 100 USDT, and the fee is a separate line on a separate balance. When you sell the native coin itself - BTC to XMR, ETH to USDT, SOL to XMR - the fee comes out of the very balance you are trying to send. Type the whole balance into the form, then press "send max" in the wallet, and the amount that arrives is balance minus fee. The quote was made for the balance. The deposit is short by 141 satoshis on Bitcoin, or 0.0000109 ETH on Ethereum. The site's own rule is blunt: an amount far below the stated one cannot be processed and cannot be refunded either. (SOL to XMR guide)

The arithmetic of "max". A wallet's max button is not a constant, because it estimates a fee for a transaction it has not built yet. On Bitcoin a 1-input, 2-output P2WPKH payment is about 141 vB; a 1-input, 1-output sweep is about 110 vB; each extra P2WPKH input adds roughly 68 vB. At 1 sat/vB that is 141 satoshis ($0.105); at 10 sat/vB it is $1.05; at 20 sat/vB, $2.11. On Ethereum the estimate is 63,203 gas times the next block's base fee, and the same transfer has cost $0.023 at 0.173 gwei and $4.03 at 30 gwei in our own records - a 173-fold swing in dollars for an identical transaction. The rule that survives both: set the swap amount to balance minus fee minus a buffer of two to three times the fee, then send exactly what the quote says. (how Monero fees work)

The TRON trap, in numbers. 64,285 energy is the cost of moving USDT to an address that already holds some. 130,285 is the cost when the recipient's balance slot goes from zero to non-zero: 66,000 extra energy for one storage write. Twelve of forty receipts in that block paid it. At 100 sun per energy that is 13.0285 TRX; the base case is 6.4285 TRX, $2.04. Add 0.345 TRX if your 600 bytes of daily free bandwidth are already spent. Against the site's $18.86 minimum, $4.13 is 21.9% of the swap; against a $100 order it is 4.1%. The second transfer to the same address will be cheap - but a deposit address is used once, by design. (XMR to USDT exit)

A six-step procedure that does not fail. (1) Check the native balance before you request a quote, not after. (2) If you are selling a token, keep the native coin: 15 TRX covers a fresh TRC20 transfer with headroom, 0.0001 ETH covers 63,203 gas even at 6 gwei, 0.002 SOL covers the fee plus a token-account rent. (3) If you are selling the native coin, subtract the fee from the amount you type, then subtract the buffer. (4) Send the exact quoted amount - the quote is per amount, not per range, so rounding up to a round number changes the rate. (5) Keep the leftover: 0.4 TRX or 0.00003 ETH is stranded but harmless, and cheaper than funding again later. (6) Fund gas once from a wallet you already use, rather than topping up before every order. (SOL to XMR guide)

Six failures I have seen, all avoidable. (1) A balance exactly equal to the quoted amount: the wallet says insufficient funds for gas and nothing broadcasts. (2) Congestion: the same Ethereum transfer moves from $0.023 to $4.03 when the base fee goes from 0.173 to 30 gwei. (3) Solana rent: 1,488,440 lamports is refundable only if the token account is closed; leave it and the money sits there. (4) Exchange withdrawals: you pay no gas, the exchange pays it and charges its own fee - gas is a self-custody problem, not a swap problem. (5) Wrong network: TRX sent to an ERC-20 address is gone, and the refund address must be on the same chain as the deposit. (6) Emptying the wallet completely: the next send needs gas again, so keep the float rather than rebuilding it under time pressure. (recovering misdirected funds)

The privacy cost of topping up gas. Every top-up is an on-chain edge. Withdrawing 20 TRX from an exchange to the same address you use for swaps writes a permanent link between that exchange account and your swap addresses; the amount is trivial, the edge is not. A one-time float funded from a wallet already associated with your trading adds nothing new. Six monthly top-ups from six different sources is a timeline someone can align with your swaps. Gas is the one part of a swap that forces you to hold a balance on the same chain - so fund it once, in one place, and stop thinking about it between orders.

Boundary and the live snapshot. These are one-transfer fees, not the swap's own price: the quote carries its own fixed deduction. At 18:06 UTC on 2026-11-09, 100 USDT-TRC20 quoted 0.14790427 XMR - an implied $676.11 per XMR, 13.8% above the $594.21 spot - while 1,000 quoted 1.65971 XMR, $602.51 per XMR, 1.4% above spot; 1 XMR sold for 589.702 USDT, and 0.01 BTC bought 1.24077 XMR (124.08 XMR per BTC against a 125.71 spot ratio). The order minimum was 18.86 USDT, the maximum 163,247. Fees move with congestion, and the page governs. The reserve rule does not move: the chain is paid in its own coin, from a second balance, and the number you type into the form is the number that must arrive. (XMR to USDT exit)

Frequently asked questions

How much native coin should I keep to swap my whole balance?

Keep two to three times one transfer: about 15 TRX on TRON (one fresh-address USDT transfer is 13.0285 TRX, $4.13), 0.0001 ETH on Ethereum at normal fees (63,203 gas costs $0.023 at 0.173 gwei but $4.03 at 30 gwei), 141 satoshis on Bitcoin at 1 sat/vB ($0.105), and 0.002 SOL on Solana (5,000 lamports fee plus 1,488,440 lamports rent if a token account must be created).

Can I use the wallet's "max" button when swapping BTC or ETH?

No. When the asset you sell is the chain's native coin, the fee comes out of the same balance, so "max" sends balance minus fee while the quote was made for the balance. Set the form to balance minus fee minus a 2-3x buffer instead. On Bitcoin a 1-input 2-output payment is about 141 vB and each extra input adds roughly 68 vB, so the fee estimate itself changes with the transaction you build.

Why did my USDT transfer on TRON cost twice the usual fee?

Because the recipient's USDT balance slot was zero before your transfer. Writing it from zero to non-zero costs 66,000 extra energy, so the transfer used 130,285 energy instead of 64,285 - 13.0285 TRX instead of 6.4285. Twelve of the 40 receipts we sampled in block 87,857,929 were in the expensive band, and a freshly generated swap deposit address is usually in exactly that state.

Keep reading

All articles →

Ready to swap?

No account · No KYC · No email

Exchange now
Swap Your Whole Balance: Gas You Must Keep (2026) — VeilSwap