Stablecoin Rails: TRON, Ethereum or Solana?
Same 1,000 USDT, four rails, measured today: 0.085% apart on price, but 0.00057 USD versus 2.00 USD in chain fees, and a different gas token you must already own. One block from each chain shows what the rail actually costs and what it leaves behind.
Four rails, one price, three different trails. At 14:02 UTC today, a 1,000 USDT order paid 1.639322 XMR on TRON, 1.639812 on Ethereum, 1.640711 as USDC on Solana and 1.640713 as USDC on Ethereum, with Monero spot at 602.89 USD. That is 0.085% between the best and the worst rail. Above a couple of hundred dollars the rail is not a price decision; it is a footprint decision: which gas token you must already hold, how many bytes and units of gas the transfer burns, and which addresses survive it. What follows prices all three, using the same quote endpoint and one block or slot from each chain, so every number describes the same afternoon. (SOL to XMR guide)
Flat above 200, steep below it. The same four rails at 60, 100, 200, 500, 1,000 and 5,000 USDT, converted to USD per XMR: TRON 743.1 / 684.6 / 610.8 / 610.2 / 610.0 / 609.8; USDT on Ethereum 679.5 / 650.7 / 609.9 / 609.8 / 609.8 / 609.8; USDC on Solana 677.4 / 649.8 / 609.3 / 609.3 / 609.3 / 609.2; USDC on Ethereum 679.7 / 650.9 / 608.7 / 608.7 / 608.6 / 608.6. At 60 USDT the TRON rail costs 9.4% more than Ethereum's; at 100, 5.2%; at 200, 0.15%; at 1,000, 0.085%. Above 200 the slope is identical everywhere, 609.8 to 610.8 USD per XMR, roughly 1.1% over spot, and the intercept is about 0.3 USDT. That intercept is not a miner fee. It is small-order tiering, and it is the only thing the corridor changes. (SOL to XMR guide)
The leg nobody counts: gas. Each rail demands a different native asset, and acquiring that asset is a second identity edge that has nothing to do with the swap. USDT-ERC20 needs ETH in the sending address: block 26,320,388 priced the median transfer at 46,109 gas and 0.0000665 ETH, or 0.151 USD, against a base fee of 0.0529 gwei and a median effective price of 1.05 gwei. TRON needs energy, and getEnergyFee is 100 sun per unit: 64,285 energy is 6.4285 TRX (2.00 USD), 130,285 is 13.0285 TRX (4.05 USD) when the recipient's balance slot is written for the first time, and zero if you have staked enough bandwidth and energy. Solana charges 5,000 lamports per signature, and if the destination has no USDC token account yet, another 1,488,440 lamports of rent-exempt deposit (0.00148844 SOL, 0.14 USD). Where that gas came from, a card purchase, a second exchange account or a friend, is a record attached to the same address that is about to send stablecoins. (SOL to XMR guide)
What a thousand dollars of movement leaves on-chain. TRON block 87,622,745 carried 110 USDT contract calls, 108 of them with a Transfer log. 85 spent exactly 64,285 energy and 22 exactly 130,285, 2.03 times more, because the recipient's balance slot was empty. Bandwidth ran 339 to 378 bytes, median 345. Only 71 of the 110 paid anything: 50 paid exactly 0.345 TRX (0.107 USD, bandwidth only, energy staked), 12 paid 6.4285 TRX (2.00 USD) and 2 paid 13.0285 TRX (4.05 USD). All the USDT traffic in that block burned 160.79 TRX, about 49.94 USD. The median transfer was 405.5 USDT, the largest 50,000, the smallest 1.5, and 68 of 108 were round numbers. A round amount is a label, not an accident. (XMR to USDT exit)
Two cheaper chains, and what that buys. Ethereum block 26,320,388 held 86 USDT transfers, 85 `transfer` and 1 `transferFrom`, costing 0.005112 ETH in total, 11.58 USD, or 10.54% of the block's gas. Median 46,109 gas, 0.151 USD per transfer, cheapest 0.005 USD, dearest 0.379 USD. Solana slot 464,118,857 at height 442,140,344 held 283 transactions with a median fee of 6,000 lamports, 0.00057 USD, of which 56 paid exactly the 5,000-lamport base, the worst 1,135,000 lamports (0.108 USD), and the whole block 0.009627 SOL (0.913 USD). The same thousand-dollar movement therefore costs 0.0006 USD on Solana, 0.15 on Ethereum and 2.00 on TRON without staking. Cost is not footprint: all three chains write sender, recipient and amount permanently and publicly. Cheap gas buys small transfers, not privacy. (SOL to XMR guide)
Where the trail actually lives. The chain records three facts; the identifiers that make them useful are issued off-chain. Every order gets a fresh deposit address, a 30-minute window (EXPIRE_MS is 1,800,000 ms) and the payout address you typed. Our production table holds 125 orders resolving to 116 deposit addresses, two of which were handed out more than once, seven times and four times, and only 47 payout addresses, one of which appears in 22 orders. That is the real grain of linkage: not the coin, not the chain fee, but address reuse across unrelated orders. The rail does not change it. A TRC20 transfer of 999.87 USDT and an ERC20 transfer of 1,000.00 USDT are equally legible to anyone reading; the difference between them is 345 bytes of bandwidth against 46,109 gas, not a different level of exposure. (XMR to USDT exit)
The path with the least exposure, in five rules. First, choose the rail where you already hold gas, so the transfer does not create a new purchase record. Second, never withdraw from an exchange straight to a swap deposit address: the withdrawal ledger ties that address to a verified account, and the payout address is one hop away, so hop through self-custody even for twenty minutes. Third, one payout address per order; Monero subaddresses are free, and deriving a fresh Ethereum or Solana address costs nothing. Fourth, the refund address must be self-custody and on the same network as the deposit, or the refund cannot be sent at all. Fifth, if your order is under 200 USDT the rail does matter, 5.2% to 9.4% today, but the fix is size rather than a different chain: at 200 the penalty is 0.15% and at 1,000 it is 0.085%. (recovering misdirected funds)
The boundary of these numbers. Quotes move by the second, and the ladder above was sampled over about 40 seconds, so differences under 0.1% are drift as much as price. What is stable is the structure: small orders pay a tiering penalty, gas costs differ by four orders of magnitude between chains, and the identifiers that link orders are addresses rather than coins. The catalogue currently lists 430 assets across 62 networks and 349 tickers, 53 of them stablecoins; USDT alone appears on 11 networks and USDC on 14, which is why the same ticker is not the same asset. Pick the rail on gas and on grain, because the basis points are already decided for you. (XMR to USDT exit)