How to swap XMR to BTC without KYC
Going from Monero to Bitcoin is the mirror image of the trip out, and the privacy logic inverts with it. On the way in, the risk sits behind you: the Bitcoin history you are trying to leave. On the way back, the risk sits ahead of you. Monero reveals nothing about where the funds came from, so the moment they land on a Bitcoin address, that address becomes the whole story — and it is a story that gets written permanently into a public ledger.
This guide covers the mechanics, the timings that differ from the other direction, and the decision that actually matters: which address you receive at.
Why not just sell XMR on an exchange
Because a growing number of them will not take it, and the ones that do treat an incoming Monero deposit as a compliance event. Depositing XMR to a verified account routinely triggers a source-of-funds request, which means uploading documents that explain where privacy-coin money came from — a question that is difficult to answer to a reviewer's satisfaction even when the answer is completely mundane. Holds of days to weeks are common, and the account is frozen while it runs.
An instant swap has nowhere to file that request. There is no account, no deposit history and no reviewer. On OnionSwap every swap is filled from reserves we hold ourselves rather than routed through a partner exchange, so there is no third party behind us with the authority to ask for documents or sit on a payout.
Step 1: pick the receiving address carefully
This is the step that decides whether the swap was worth doing. Generate a fresh, never-used address in a wallet you control. Every reasonable Bitcoin wallet will hand you a new one on request; there is no cost to it and no reason to reuse.
What to avoid, in rough order of how badly it defeats the exercise:
A KYC exchange deposit address. This links your verified identity directly to the swap output, and it is exactly the deposit pattern that compliance systems score as high-risk. You get the source-of-funds request anyway, just one hop later.
An address you have posted publicly. A donation address, a forum signature, anything indexed anywhere. The link is already made before the coins arrive.
An address in the same wallet cluster as coins tied to you. If you later spend the payout together with an input from a known address, common-input-ownership heuristics merge the two, and the swap output inherits the identity of whatever it was spent alongside. Keep the received coins in their own wallet if the separation matters.
Step 2: create the order
On the exchange form, pick XMR as the asset you send and BTC as the asset you receive, enter an amount, and paste your Bitcoin address as the payout address. The quote and a single-use deposit address appear on the next page.
The cost is a flat 0.4% service fee plus the network fee of the outgoing chain, both already reflected in the number you are quoted — the figure shown is what lands. The form also prints the minimum and maximum for the pair. The floor exists so Bitcoin's network fee does not eat a visible share of a small payout; the ceiling follows our BTC reserve, which refreshes every fifteen minutes on the home page.
Step 3: fund the deposit address
Send the quoted amount of Monero to the deposit address shown. Three things worth knowing:
The address is single-use. Do not save it for a later swap — funds sent to an expired order need a manual ticket to recover, and reusing it ties the two orders together.
Send the amount you were quoted. Under- and overpayments are still processed, but at the rate current when the deposit is seen rather than the one you were shown. An amount that lands below the minimum has to be refunded instead.
There is no payment ID to worry about. Monero subaddresses replaced that mechanism years ago; if a service still asks you for one, that is a sign of an old integration.
Step 4: wait for the payout
Monero requires ten confirmations before funds are considered settled, and the Bitcoin payout is broadcast after that. At roughly two-minute blocks, expect about twenty minutes end to end — noticeably slower than the other direction, where a single Bitcoin confirmation is enough.
The order page moves through awaiting deposit, confirming, sending and complete, and you can check it any time from the track page with your order ID. Save that ID before closing the tab — with no accounts, it is the only handle to the order.
Timing and amount correlation
An observer cannot see your Monero side at all. What they can see is a Bitcoin payout appearing at a fresh address at a particular minute for a particular amount. On its own that is meaningless. It stops being meaningless if it correlates with something else they already know about you — a round number, or a payout arriving minutes before you spend an identical amount somewhere identifiable.
Two cheap habits fix most of this. Avoid round figures, and let the coins sit rather than forwarding them straight through. Neither costs you anything, and together they remove the two easiest correlations anyone would try first.
Do the received coins carry Monero taint?
Not in the sense people usually mean. The Bitcoin you receive comes from exchange reserves, not from your deposit — there is no on-chain path linking the two, because the two transactions are on different chains and the Monero one is opaque regardless.
What some analytics vendors do instead is score the payout address as having received from a known swap-service cluster. That is a heuristic about the service, not about you, and it is the reason depositing a swap payout straight into a KYC exchange account tends to go badly. If the destination is eventually a regulated venue, expect questions there and plan accordingly.
Other pairs
The same flow works for any pair we support — BTC, XMR, ETH, LTC, DASH, and the ERC-20 stablecoins USDT, USDC and DAI, in any combination. Only the confirmation counts change: one for BTC and LTC, ten for XMR, roughly thirty seconds of block time on Ethereum. XMR to a stablecoin is the common variant of this route when the goal is to sit still in something that does not move, rather than to hold Bitcoin.