Which network should you use to off-ramp stablecoins? Finality, fees, and confirmations by chain

How Ethereum, Polygon, Base, Arbitrum, Solana, Tron, Stellar, Tempo, and Arc compare for off-ramps: time to finality, fee model, and which tokens work.

The best network for a crypto off-ramp is the cheapest one both you and the provider support for your token. For USDC that usually means Polygon, Base, Arbitrum, Solana, Stellar, Tempo, or Arc. For USDT it means Polygon, Solana, or Tron. Ethereum is fine for large payments but costs more gas and takes about 15 minutes to finalize.

The network sets the on-chain clock and part of the fee. The bank rail sets everything after that.

Key takeaways

  • An off-ramp has two clocks: the chain reaching finality, then the fiat rail paying out. The rail is almost always the slower one.
  • Finality ranges from under a second (Arc, Tempo) to a few seconds (Stellar, Polygon PoS) to about 15 minutes (Ethereum).
  • Network gas is cents or less on most chains. The provider's per-network fees and minimums often matter more.
  • Choose by token support first, then by fee, then by finality. Don't choose by block time alone.

How does the network affect an off-ramp?

It decides how long the stablecoin leg takes and what the transfer costs. Everything else, from the FX rate to the payout rail, is the same whatever chain you send on.

Think of it as two clocks. Clock one is on-chain: your transfer lands in a block and that block becomes final, meaning it can't be reorganized away. Clock two is the fiat payout over Pix, SPEI, ACH, SEPA, or SWIFT. The settlement times by rail cover clock two. This article is about clock one.

The gap between "submitted" and "final" is also where provider SLAs get vague. The SLA and finality explainer calls these T1 and T2.

How long does each network take to finalize?

NetworkBlock timeWhen a transfer is finalAbout how long
Ethereum12-second slotsAfter two epochs of validator votes (Gasper)About 15 minutes
Polygon PoSA few secondsWhen a milestone is agreed by 2/3+ of validators (Heimdall v2)2 to 5 seconds
Base2 seconds, 200 ms preconfirmationsWhen the batch is final on Ethereum (Base finality)About 2 minutes to post, about 20 minutes to L1 finality
Arbitrum One250 msSoft finality from the sequencer, hard finality once the batch is final on Ethereum (Nitro)Soft is instant, hard follows Ethereum finality
SolanaSub-second slots"Finalized" after 31+ confirmed blocks on top (commitments)About 12.8 seconds
Tron3 secondsWhen 19 of 27 super representatives have produced blocks at or above it (consensus)About 1 minute
StellarAbout 5 secondsWhen the ledger closes under SCP (Stellar)About 5 seconds
TempoAbout 600 msDeterministic finality under Simplex BFT (Tempo)Under a second
ArcSub-secondDeterministic finality under Malachite BFT (Arc)Under a second

Two kinds of finality sit in that table.

Deterministic finality (Stellar, Polygon PoS milestones, Tempo, Arc) means a block is final once consensus signs it. There's nothing to wait for after that. Stellar's consensus is built to stall rather than fork, which is the trade you want for payments.

Economic or probabilistic finality (Ethereum, Solana, Tron, and the rollups that inherit Ethereum's) means the chance of a block being replaced shrinks as more blocks pile on, until a checkpoint makes reverting it prohibitively expensive. On Ethereum, undoing a finalized block would require destroying at least a third of all staked ETH.

Reorgs are not theoretical. Polygon PoS had a 157-block reorg in February 2023. Its current milestone finality makes blocks final within seconds. Solana's planned Alpenglow upgrade targets about 150 ms finality, so its row will change.

How many confirmations does an off-ramp wait for?

Each provider sets its own rule. Some count blocks per chain. Some wait for the chain's finalized state. Some release fiat earlier for small amounts and wait longer for large ones.

What you should do: don't count blocks yourself to decide whether money arrived. Read the provider's status. On BlindPay, the payout's tracking_transaction step moves to completed once the stablecoin leg is done, and the top-level status tells you where the fiat is. BlindPay doesn't publish a per-chain confirmation count, so build against statuses and webhooks. The payout tracking guide shows what each status should say to the recipient.

What does each network cost to send on?

Gas is the smaller part on most chains. Here is what each one charges for, in its own words.

NetworkGas paid inFee model
EthereumETHBase fee plus priority tip under EIP-1559 (blocks). Rises with demand
Polygon PoSPOLEIP-1559 style gas: a base fee plus a priority tip
BaseETHL2 execution fee plus an L1 security fee, usually the larger part (Base fees)
Arbitrum OneETHL2 gas plus an L1 data fee for posting to Ethereum (Arbitrum fees)
SolanaSOL5,000 lamports per signature plus an optional priority fee. Creating a new token account also needs rent (Solana fees)
TronTRX or staked energyEnergy and bandwidth. Burning TRX costs 100 sun per energy unit, and activating a new account costs 1 TRX (Tron resources)
StellarXLMBase fee of 100 stroops per operation, higher under surge pricing (Stellar fees)
TempoUSD stablecoinsPaid in TIP-20 stablecoins. Around $0.0006 at the cap for a 50,000-gas transfer (Tempo fees)
ArcUSDCUSDC is the gas token, with a target of about $0.001 per ERC-20 transfer (Arc fees)

The provider's per-network fee is often the bigger number. On BlindPay offramp wallets, for example, each deposit carries a fixed fee by chain: 15 USDT on Tron (200 USDT minimum), 0.50 USDC on Solana (50 USDC minimum), 1 USDC on Ethereum, and nothing on Polygon, Base, Arbitrum, Tempo, or Arc.

A fixed fee hurts small payments and disappears on large ones:

  1. 250 USDT on Tron: 15 USDT is 6% of the payment.
  2. 1,000 USDT on Tron: 1.5%.
  3. 10,000 USDT on Tron: 0.15%.
  4. Any amount on Polygon: 0% additional fee.

The off-ramp wallet explainer runs a full 100 USDT example with every fee line.

Which networks support which stablecoin?

Not every token is on every chain, and a quote for an unsupported pair fails. Per BlindPay's supported chains reference:

TokenNetworks
USDCEthereum, Polygon, Base, Arbitrum, Solana, Stellar, Tempo, Arc
USDTEthereum, Polygon, Solana, Tron, Tempo

USDC isn't on Tron. USDT isn't on Base, Arbitrum, Stellar, or Arc.

One more trap: "USDC" on a chain can mean native USDC issued by Circle or an older bridged version. They have different contract addresses and aren't interchangeable. Check the contract against Circle's list of USDC addresses before you send. For which token to hold at all, see USDC vs USDT for payments.

How do you pick a network?

Work down this list and stop at the first rule that decides it.

  1. Use the chain the funds already sit on, if the provider supports it. Bridging adds a transaction, a fee, and a new way to fail.
  2. If you send many small payouts, use a low-fee chain with fast finality. Polygon, Base, Arbitrum, Solana, Stellar, Tempo, or Arc.
  3. If your counterparties pay you in USDT in Latin America, expect Tron. It works, but batch small amounts or ask them to send on Polygon. The USDT off-ramp guide covers this corridor by corridor.
  4. If you move large treasury amounts, Ethereum is fine. Gas is small relative to the payment, and 15 minutes to finality rarely matters next to a bank rail.
  5. If the payout is in euros, check the rail's own list. SEPA payouts take USDC only, from a subset of chains. The SEPA off-ramp guide lists them.
  6. If you need the payout fast, pick the rail, not the chain. Pix and SPEI pay out in minutes. ACH takes about two business days whatever chain you sent on.

What goes wrong with network choice?

ProblemCauseHow to avoid it
Funds sent but no payoutToken sent on the wrong network. EVM addresses look the same on every EVM chainConfirm network and token with the recipient, not just the address
Transfer rejected or not creditedBridged token instead of native USDCCheck the contract address against the issuer's list
Deposit not convertedBelow the network's minimum, or smaller than the feesKnow the per-network minimums before you share an address
Approve or transfer won't sendWallet holds the stablecoin but no gas tokenKeep ETH, POL, SOL, TRX, or XLM in the sending wallet
Payout slower than expectedThe rail, not the chainSet ETA copy per rail

The payout mistakes guide goes deeper on each one.

How does BlindPay handle networks?

BlindPay pays out from nine networks: Ethereum, Polygon, Base, Arbitrum, Tempo, Arc, Stellar, Solana, and Tron. You pass network and token on the payout quote, and the quote fails fast on an unsupported pair. From an external wallet you authorize the exact quoted amount (an ERC-20 approve on EVM chains, a signed transaction on Stellar, a token delegation on Solana) and BlindPay pulls the funds only when the payout executes. Offramp wallets cover the same chains except Stellar, and every deposit pays out on its own.

Start in the sandbox with the payout quickstart.

This article is for general information only and is not legal, tax, or financial advice.

FAQ