Bitcoin to Monero atomic swaps.
Trade BTC for XMR, or XMR for BTC, and let the two chains settle it between them. No bridge, no wrapped token, and nobody holding the coins while the trade goes through.
You may still read that these swaps only run one way, from Bitcoin into Monero. That was true in the early implementations. BasicSwap has settled them in both directions since 2023, so selling XMR for BTC works the same as buying.
The pair that was supposed to be impossible.
Bitcoin has a scripting language. Monero does not. Almost every atomic swap design uses script to hold coins under a condition, which is why Monero sat outside cross-chain trading for years while wrapped tokens and custodial swappers filled the gap.
Adaptor signatures take the script out of one side. The signature that redeems the Bitcoin is encrypted under half of the Monero spend key. Publishing that signature to claim the Bitcoin also publishes the half it was encrypted under, and whoever holds the other half can then open the Monero.
Monero needs no contract and no condition of its own. The key is simply incomplete until the Bitcoin moves. The Bitcoin side still uses ordinary script and timelocks, which the research calls semi-scriptless.
We shipped the first working version of this in 2020, and swaps have run in both directions since 2023.
How the two chains settle it.
If either side stops partway, presigned refunds return the coins once the timelocks expire. Both traders sign those refunds before either of them locks a coin, so the way out never depends on the other one answering.
-
01
The Monero seller locks their coins under a key split between the two of them.
Neither half spends on its own.
-
02
You lock the Bitcoin in a 2-of-2, and pre-sign the path that pays them.
Your signature stays incomplete until their key half is applied to it.
-
03
They complete that signature to take the Bitcoin.
Bitcoin's rules put the finished signature on chain, and their half falls out of it.
-
04
You read their half off the chain and add your own.
That is the whole Monero spend key, and the coins are yours to move.
Four things that never enter the trade.
No wrapped coins
Both sides are the actual coins on their own chains. Nothing is minted, pegged, or held as an IOU against a reserve you cannot inspect, so there is no issuer whose solvency you have to take on trust.
No bridge
There is no intermediary chain sitting in the middle. Bridges are where the largest cross-chain thefts have happened, Ronin and Wormhole among them, and a trade that never touches one leaves no such contract to drain.
No custodian
Coins move between the two traders' own wallets. There is no account to open, no deposit to make, and no operator who could freeze the trade partway.
No protocol fee
BasicSwap takes nothing from either side, whether you posted the offer or took it. What leaves your wallet is the ordinary network fee on each chain.
What each transaction does.
A completed swap uses four of these. The other four exist so that a swap which stalls still ends with both traders holding their own coins.
| Transaction | What it does | When it can be mined |
|---|---|---|
| Chain A lock | Locks the Bitcoin under the swap contract. | Broadcast first, once both sides agree terms. |
| Chain B lock | Locks the Monero so that only the two traders together can move it. | After the Bitcoin lock confirms. |
| Chain A lock spend | Claims the Bitcoin, and in doing so publishes the secret the other side needs. | As soon as both locks are confirmed. |
| Chain B lock spend | Claims the Monero using the completed key. | Once the secret appears on the Bitcoin chain. |
| Chain A lock refund | Moves the Bitcoin onto the refund path when a swap stalls. | After the first timelock, 48 hours by default. |
| Chain A lock refund spend | Returns the Bitcoin to the trader who locked it. | Once the refund transaction confirms. |
| Chain A lock refund swipe | Lets the counterparty take the refund output if the owner never claims it. | After the second timelock, counted from the refund transaction. |
| Chain B lock refund | Returns the Monero to the trader who locked it. | On the refund path, using the presigned key shares. |
The maker picks the timelock when posting the offer. BasicSwap defaults to 48 hours and accepts anything from 4 to 96, so a trader who wants a longer window to recover from a stalled swap can set one.
How this compares.
Several tools will move you from Bitcoin into Monero. They differ mostly in who is holding the coins while it happens, and in who can stop the trade once it starts.
| BasicSwap | eigenwallet | Haveno / RetoSwap | Instant swappers | |
|---|---|---|---|---|
| Who holds the coins mid-trade | Nobody. The chains do. | Nobody. The chains do. | 2-of-3 multisig with an arbitrator | The service does |
| Account needed | No | No | No | Usually not, but screening applies |
| Protocol fee | None | Maker spread only | Maker and taker fees | Built into the quoted rate |
| Directions | BTC to XMR and back | BTC to XMR. Selling XMR needs the maker daemon. | XMR against fiat and crypto | Both, quoted per request |
| Make and take offers in the app | Both, in the same client | Taking only. Making runs as a server daemon. | Both | Neither. You take their quote. |
| How offers reach you | Gossiped across the peer network | Fetched from each maker you discover | Peer-to-peer offer book | One quote from the operator |
| Counterparty history | Kept for both sides, and can decide the next trade | Your own past swaps with that maker, shown only | Arbitrator resolves disputes | None |
| Third party who can stop it | None | None | Arbitrator on a disputed trade | The operator, at any point |
| Pairs beyond BTC and XMR | 14 coins | None | Monero-centred | Hundreds |
| Run your own node | Optional, or lightweight mode | Optional | Recommended, not required | Not possible |
| How you get it | Build from source | Prebuilt binaries | Prebuilt binaries, Android included | A website. Nothing to install. |
Haveno reaches places an atomic swap cannot, because it settles against cash and bank payments. The trade-off is an arbitrator holding one of the keys.
eigenwallet runs the same cryptography on the same pair. It is a capable Monero wallet, and it routes over Tor by default, where BasicSwap leaves that to you.
What it does not do is let you sell Monero. Its app takes offers rather than posting them. Going the other way means running a maker daemon on a server, quoting a single spread over a market feed.
BasicSwap puts both roles in one client, across 14 chains. Offers can carry a price floor and move in set sizes. And the client remembers how earlier swaps with a counterparty went, which can decide whether it accepts the next one.
Doing one yourself.
Four steps from a fresh install to coins in your own wallet.
Install BasicSwap Desktop
Desktop builds the protocol and the Bitcoin and Monero core wallets on your own machine. If running two nodes is more than you want to manage, lightweight mode reads what it needs from public Electrum servers and Monero nodes instead.
Fund the wallet you are selling from
BasicSwap generates a deposit address inside the coin wallet it manages for you. Send the Bitcoin or Monero you intend to trade to that address and wait for it to confirm.
Find an offer, or post your own
The order book arrives over encrypted peer-to-peer messaging. Filter it to the BTC and XMR pair, take an offer at a price that suits you, or post your own and wait for a taker.
Stay online until it settles
Each step hands data to the other side as it happens, so the client has to be running for the swap to progress. Nothing is at risk if you go offline, because the timelocks still return the coins, but the trade will not finish while it is closed.
Questions about this pair.
How long does a Bitcoin to Monero swap take?
Both chains have to confirm, so the wait follows their block times. A default install waits one confirmation on Bitcoin and three on Monero, and a swap makes several of those waits in sequence as each side locks its coins and then claims them. That usually puts the whole thing in the tens of minutes. A custodial service can look quicker because it moves the funds itself instead of waiting on two chains, which is the step BasicSwap does without.
Can I swap Monero back to Bitcoin?
Yes. Both directions run on the same protocol and have done since 2023. You post an offer to sell XMR for BTC the same way you would post one the other way round.
What happens if the other trader disappears?
The swap expires and the coins go back to their owners. That escape route is built at the start, before either side commits a coin, which is why it still works if the other trader vanishes for good or BasicSwap stops existing tomorrow.
Do I need to run a Bitcoin node and a Monero node?
On Desktop you can, and it is the strongest setup, because BasicSwap runs each coin's official core wallet and validates for itself. Lightweight mode is the alternative, leaning on public Electrum servers and Monero nodes for chain state, and mobile wallets that have integrated the protocol work that way too. Whichever you pick, the client has to stay online for the whole swap, because the two sides hand each other data at every step.
What are the fees for converting Bitcoin to Monero?
The protocol takes nothing, for either side of the trade. You pay the ordinary network fee on each chain, the same as any other transaction, and that is the whole cost.
Can you send Bitcoin to a Monero wallet?
No. They are separate chains with different address formats, and a Monero wallet has no way to receive or spend a Bitcoin transaction. Sending BTC to an XMR address will not deliver the funds, and depending on the address it may lose them. Converting is the only route, and that is what a swap does. Your Bitcoin goes to whoever wanted it, their Monero comes to you, and the two payments are bound together so neither can happen alone.
Do I need a Monero wallet before I swap?
BasicSwap creates one for you. Desktop runs Monero's own wallet software locally and generates the address the swap pays into, so there is nothing to set up beforehand and no address to paste. If you would rather receive into a wallet you already use, withdraw once the swap finishes.
Is a Bitcoin to Monero swap traceable?
The Bitcoin payment is as public as any other Bitcoin transaction, and the Monero payment carries Monero's usual privacy. What a swap avoids is the marker that links them. Adaptor signatures leave nothing on the Bitcoin chain saying a swap took place or which Monero transaction it pairs with, so the trade looks like ordinary spending rather than an obvious conversion into a privacy coin.
How is this different from an instant swap service?
An instant swap service takes your Bitcoin, holds it, and sends you Monero from its own reserves, which is quicker and means the service can freeze the funds, ask for identification, or fail while holding them. An atomic swap has no such middle step. The coins move directly between two traders and the chains enforce that both payments happen or neither does.
Last updated
Monero trades against more than Bitcoin.
The same adaptor signature protocol carries XMR against Litecoin, Particl, and the rest of the supported coins. The compatibility table on the Desktop page shows which method each pair uses.