Ethereum to Monero settles in roughly the time it takes to brew coffee — about twice as fast as Bitcoin to Monero — which quietly flips the most important decision in the swap. For BTC → XMR, the 30-minute fixed-rate lock often expires before Bitcoin even confirms, so most people default to floating. For ETH → XMR, the lock almost always survives, which means fixed vs floating becomes a real choice about cost certainty rather than a race against the clock. This guide walks through the full ETH → XMR flow on SwapZilla — picking a rate type, setting a refund address, handling gas, and what not to do if you care about privacy.
Why ETH → XMR is different from BTC → XMR
If you’ve already read the BTC → XMR guide, most of the framing carries over: pick a rate type, use a wallet you control, set a refund address, never send swapped XMR to an exchange. But four things change when the source is Ethereum.
Confirmation speed. A standard ETH transaction confirms in 1–3 minutes. Bitcoin needs 10–60 minutes for the same level of provider acceptance. That difference is the single biggest reason most BTC → XMR guides push you toward floating rate — and most ETH → XMR ones don’t need to.
Gas. Ethereum’s EIP-1559 fee model means you set a base fee (burned) plus a priority tip (paid to validators). Get the tip wrong in either direction and you either get stuck or overpay. Bitcoin’s sat/vB model is mechanically simpler and almost always cheap by comparison.
Traceability. Both chains are transparent, but Ethereum addresses are usually richer in identity signal. Your ETH wallet probably has DeFi history, ENS records, an OpenSea profile, maybe a Gitcoin donation pattern — each of those is a fingerprint. Bitcoin wallets tend to be quieter on-chain.
ERC-20 noise. Half the wallets that hold ETH also hold ERC-20 tokens, and many users actually want to swap a stablecoin to XMR rather than native ETH. That changes the routing math — more on that below.
For ETH → XMR, the choice between fixed and floating is about cost certainty, not deadline pressure. Fast confirmations mean the 30-minute lock almost always survives.
Before you swap — where did the ETH come from?
This is the question that determines how private the swap actually is, and it’s the one almost every guide skips.
ETH from a CEX withdrawal. The exchange holds a record: timestamp, amount, your identity, the destination address. That record is sold to analytics vendors and shared with regulators on request. The XMR you receive is still unlinkable on Monero, but the moment of swap is tagged to you. Treat this as “privacy starts after the swap” rather than “this swap is private.”
ETH from DeFi activity. If the ETH sat in a wallet that’s been doing DeFi for two years, that wallet has a public history — every Uniswap trade, every staking transaction, every NFT mint. The wallet is pseudonymous, but its behaviour is a fingerprint, and chain-analytics firms profile DeFi wallets by similarity.
ETH from a fresh wallet. Cleanest case. If you’ve already routed funds through at least one intermediate wallet — ideally with a gap of days, not minutes — the on-chain link is much weaker. This is the only path that gets you close to “fully private from the moment of swap.”
You can’t fix the source after the fact. If you care about full unlinkability, plan the wallet hygiene before sending anything to a deposit address.
Step 1 — Pick ETH and XMR on SwapZilla
On the SwapZilla homepage, click the From field and search for ETH. Pick Ethereum mainnet — not Arbitrum, Base, or Optimism unless your wallet’s funds are on those L2s and the provider explicitly supports that route.
L2-ETH and mainnet-ETH are different assets from the perspective of swap providers. If you have ETH on Arbitrum, you generally need to bridge to mainnet first (5–15 minutes for native bridges, a few minutes for fast bridges). Some aggregator routes will accept L2 deposits directly — check the network selector for each provider before you assume.
Click the To field and pick XMR. As both are selected, the aggregator streams quotes from every supported provider — first quotes start arriving within a few hundred milliseconds, the rest fill in over the next 1–3 seconds.
Step 2 — Floating vs fixed rate for ETH
The toggle below the amount input is meaningful for ETH → XMR, but it asks a different question than for BTC → XMR.
Floating means the rate is determined when your deposit confirms. The provider’s spread is tighter on floating because they don’t carry rate risk. If ETH moves 0.3% in your favour between deposit and execution, you keep that. If it moves against you, you give it up.
Fixed locks the rate for 30 minutes. The quote includes a buffer (usually 1–2%) so the headline rate is worse, but you know the exact XMR amount you’ll receive regardless of what ETH does in the next half hour.
For BTC → XMR, the practical answer was “floating, because the lock often expires.” For ETH → XMR, the lock almost always survives — Ethereum’s 1–3 minute confirmation window fits comfortably inside 30 minutes even during congestion. So the choice is honest: do you want the best live rate, or exact-cost certainty?
Pick fixed if you’re settling an invoice, sending a precise XMR amount to someone, or just hate watching rates move. Pick floating in every other case — the spread savings stack up.
Step 3 — Receiving address: a Monero wallet you control
This step is identical to BTC → XMR. The only acceptable destination is a Monero wallet you control:
- Monero GUI / CLI — official, runs full node or remote node modes
- Cake Wallet — mobile, easy onboarding, multiple subaddresses
- Feather Wallet — desktop, lightweight, popular with privacy-focused users
- Stack Wallet — desktop and mobile, multi-coin
Do not send swapped XMR to an exchange deposit address (Kraken, Binance, Coinbase, MEXC, anywhere). The exchange will record that you received exactly this much XMR at this time — every privacy gain from the swap is gone the moment it lands there.
Use a fresh subaddress for each swap. All four wallets above generate subaddresses for free; there’s no reason to reuse one.
A fresh Monero wallet is half the privacy. The other half is making sure the ETH you’re sending isn’t already tagged to your name.
For a deeper comparison of wallets, see our Monero wallets roundup.
Step 4 — Refund address: use a fresh ETH address
Optional in the UI, mandatory in practice. If the swap fails — a low gas fee leaves your deposit stuck, the provider has an outage, the lock expires — refunds land at the address you set here. Without one, recovering funds requires manual support contact and is much slower.
Two important rules for ETH refund addresses:
- Not your main hot wallet. That wallet probably already has DeFi history, ENS, NFT records — anything you do here gets attached to that fingerprint. Use a fresh address.
- Not an ENS-named address. ENS names are public identity tags. If you set
yourname.ethas the refund address, the provider’s logs (and any chain-analytics firm watching providers) now have a name attached to your swap intent.
Generate a fresh address in your wallet (most modern wallets let you create multiple accounts), copy the raw 0x... address, paste it in.
Step 5 — Gas strategy: what fee tier to pick
Ethereum’s gas market is where most ETH → XMR swaps go wrong. Two failure modes:
Underpaying. Your transaction sits in the mempool waiting for blockspace. During congestion, this can mean hours. On a fixed-rate lock, your 30 minutes expire while you wait, the provider refunds, and you start over — having paid the gas anyway.
Overpaying. No mechanical penalty, just burned money. During quiet hours, overpaying by 10× costs maybe $5; during DeFi spikes, the same overpay can be $50+.
The simple rule: look up the current standard tier on Etherscan Gas Tracker or ethgas.watch and match it. Standard tier usually means “next 1–2 blocks” (15–30 seconds). Fast tier means “this block” (under 12 seconds). For an ETH → XMR deposit, standard is almost always enough — the swap doesn’t care if your tx lands now or 30 seconds from now, only that it lands inside the lock window.
Rough cost envelope in 2026 conditions: a simple ETH transfer is around $0.50–$3 in normal conditions, $10–$30 during DeFi spikes. If you’re seeing a quote much higher than that, you’re either over-tipping or the network is under serious load — wait if you can.
Step 6 — Send the deposit and wait
After confirming on SwapZilla you’ll see a deposit address and an exact ETH amount. Critical rule: send the exact amount in a single transaction. Providers reconcile deposits by matching amount-to-expected; a wrong amount or a split deposit forces manual intervention and delays the swap.
If you control gas (most wallets let you), pick standard tier from a gas tracker. If you’re on a fixed-rate lock, lean toward fast to give yourself margin.
End-to-end timing, typical case:
- ETH transaction broadcast → in mempool immediately
- First confirmation → 1–3 minutes at standard fee
- Provider execution → under a minute
- Monero send + 10 confirmations → 5–10 minutes
- Total: 8–15 minutes
You’ll see status updates on the shift page. If the page sits on “awaiting deposit” for more than 20–30 minutes, check the tx on Etherscan — most likely it’s still pending due to an underpaid fee.
What to avoid
A handful of patterns leak privacy or kill the swap entirely:
- KYC-tainted ETH. If the deposit came directly from a CEX withdrawal, the swap moment is tagged to your identity. Use an intermediary wallet first.
- ENS-named addresses. Don’t set
yourname.ethas the refund — that’s a public identity tag attached to the swap. - Reusing the deposit wallet. Each swap from the same address builds a profile. Use fresh addresses where you can.
- Sending the swapped XMR back to a CEX. Annuls every privacy gain. Use a Monero wallet you control, end of story.
- Underpaying gas during a fixed lock. Your stuck tx will outlast the lock. Pay standard or fast tier, not the cheapest.
- Talking about it in public chats. Chain-analytics teams scrape public Telegram and Discord. Don’t post your swap tx hash with commentary.
When this guide doesn’t apply
A few cases where the playbook changes:
- Large amounts (above ~$10k). Some providers apply enhanced checks at that threshold. Check the per-provider notes on the rate list before confirming, and consider splitting across multiple smaller swaps.
- L2-only holdings. If your ETH is on Arbitrum, Base, or Optimism and no provider supports your route directly, bridge to mainnet first. Add 5–15 minutes and a small bridge fee to your timing.
- You actually want to swap an ERC-20 token, not ETH. USDT, USDC, and other ERC-20s have their own routing considerations — see our USDT network guide for that path. The principles in this article still apply, but you’ll have a token-approval transaction in addition to the transfer.
- You’re swapping for commercial reasons, not privacy. If you got paid in ETH and just want to hold XMR, most of the privacy framing here is overkill — pick a rate type, paste an address, and go.
For other edge cases or questions, check the SwapZilla FAQ.