
How to Swap Zcash (ZEC) to Monero (XMR) Without KYC
Swapping Zcash to Monero takes twenty to twenty-five minutes and needs a ZEC wallet, a Monero address to receive the XMR, and a Zcash address for refunds. There is no account, no email, and no identity check. This guide goes through the swap in order, including how to pay from a shielded balance, why the refund address is required, and how to clear the not enough funds error that shielded-first wallets throw. You can start from the ZEC to XMR pair page or pick the pair on the homepage.
Know why people swap ZEC for XMR
Zcash and Monero both take privacy seriously, but they start from opposite defaults. On Zcash, privacy is a choice: coins can sit in a shielded pool where amounts and parties are hidden, or in the transparent pool where they behave much like Bitcoin, and in practice a large share of ZEC moves transparently. On Monero every transaction is private, with no transparent mode to fall back to.
Plenty of people hold ZEC and want Monero, and would rather move between them without opening an exchange account. Converting ZEC to XMR through a swap with no sign-up means the move itself does not attach your name to the coins.
Prepare a Monero address and a Zcash refund address
You need two addresses before you start. The first is the Monero address that will receive the XMR. Any address from a wallet you control is fine. Copy it carefully and check it against your wallet before you confirm.
The second is a Zcash refund address, and on this route it is required rather than optional. If your deposit arrives short or the settlement network declines the route for any reason, the ZEC is returned to this address. It must be an address you control. A transparent address, the kind that starts with t1, is fine for refunds.
Also check your balance against the minimum. The smallest ZEC to XMR swap is roughly twenty-five dollars worth of ZEC, and the form shows the exact minimum. Leave a little headroom, because the Zcash network fee comes out of your wallet on top of the amount you send.
Get a quote on the ZEC to XMR pair page
Open the ZEC to XMR pair page or pick the pair on the homepage, enter the amount of ZEC you want to send, and the form shows how much XMR to expect at your Monero address. Nothing is added to the quote after you confirm; what can move the final amount is the market between quote and execution, explained next. Paste your Monero address and your Zcash refund address, check both, and confirm.
One thing is different about this route compared with a direct pair. ZEC to XMR runs as two swaps back to back on the settlement network: your ZEC is first converted into a stablecoin, and that stablecoin is then converted into XMR. Because each leg executes at the moment it runs, the quoted XMR amount is an estimate rather than a locked figure; the final amount is set when each leg executes and can come out a little above or below the quote. MoneroSwap never holds your funds; the settlement partners handle them briefly in transit between the two legs.
After you confirm, the swap page shows a transparent Zcash deposit address beginning with t1, the exact amount to send, and a deposit window of about three days. Save the swap page link, because it is the only record of the swap and there is no account to log back into.
Send the ZEC in one transfer, from shielded or transparent funds
Send the exact amount shown, in a single transaction, with the network fee paid on top. If your wallet offers an option along the lines of subtract fee from amount, turn it off. Otherwise the deposit arrives slightly short. Do not split the amount across two sends, and do not round it.
You can pay from a shielded balance. When a shielded wallet sends to a transparent address it performs a deshielding transaction, which is a normal Zcash protocol operation. The only thing visible on the chain is the amount that lands on the t1 deposit address. Your shielded history, your other notes, and the addresses you received from stay hidden. Paying from a transparent balance works too and is simply an ordinary transparent transfer.
Zcash blocks arrive roughly every seventy-five seconds, so the deposit should be visible on the network within a couple of minutes of broadcasting. Once the network sees it, the swap page displays the deposit transaction. If the swap page still shows nothing a few minutes after you broadcast, check in your own wallet that the transaction actually went out.
Wait for confirmations and the two legs
The deposit is treated as confirmed after about four Zcash confirmations, which is around five minutes. From there the first leg converts your ZEC into a stablecoin and the second leg converts that into Monero. A typical swap takes twenty to twenty-five minutes end to end. The first live swap on this route took fourteen minutes from broadcast to Monero payout, so quicker is possible, but plan for the longer figure.
You do not need to keep the page open, and there is nothing for you to do during this stage. If you close the tab, reopen the saved swap link and the page shows where the swap stands.
Receive your Monero
The swap page marks the swap as completed only once the Monero payout has a transaction hash, so completed means the XMR has actually been sent, not merely scheduled. The page shows that hash, and you can look it up on any Monero block explorer or simply watch for it in your own wallet.
Monero wallets need to scan the chain to see incoming funds, so a wallet that has been closed for a while may take a few minutes to catch up before the balance appears. Once the transaction has ten confirmations the funds unlock and are spendable. At that point the swap is finished.
Fix the not enough funds error and other common problems
The most common problem on this route happens before the swap even starts. A shielded-first wallet shows a balance that comfortably covers the amount, yet refuses to send and reports not enough funds. This is almost never a MoneroSwap issue. The wallet is describing which of your notes it can spend right now, not what you own.
There are three usual causes. First, notes that recently arrived are not yet spendable: light wallets generally want around ten confirmations and a finished sync before they will spend a note, so a wallet that just opened may still be catching up. Second, you are trying to send the whole balance, which leaves no room for the network fee. Third, your funds are split between the transparent and shielded pools and the wallet will not combine them in one send.
The fixes follow directly. Let the sync finish and try again, send slightly less than the full balance, or shield the transparent portion first and then send from the shielded pool. If the swap page shows the deposit but nothing else changes for well over an hour, contact support through the Telegram handle in the site footer and include the swap link; the link is all that is needed, since there is no account attached to you.
Keep the swap private and know what this route does not do
MoneroSwap keeps no logs of your swap and the code is open source. The Tor onion service serves the same swap flow and works with JavaScript disabled, if you would rather not reveal your network address at all. Paying from a shielded ZEC balance and receiving into a Monero wallet means neither your Zcash history nor your Monero balance is exposed by the swap; what the public record shows is the deposit amount landing on a transparent address and the settlement legs in between, and nothing there points back to your shielded wallet.
Two limits are worth stating plainly. ZEC can be the coin you send but not the coin you receive, so the route runs one way for now. And the amount you receive is an estimate until both legs have run. If either of those does not suit you, wait or use another route.
Swap into or out of Monero, no KYC
MoneroSwap is a private Monero swap with no account, no KYC, and no logs. Open source and available over Tor. Verify every claim, then swap BTC to Monero, ETH to Monero, USDT to Monero, or see all pairs. New here? Start with the FAQ.
← All guides