To the main

This guide focuses primarily on the COMIT / Farcaster route because it is the most straightforward and widely used method in early 2026 for direct BTC ↔ XMR atomic swaps. We also cover Haveno briefly at the end.

Atomic swaps are one of the cleanest and most private ways to exchange Bitcoin (BTC) for Monero (XMR) without using any centralized exchange, no KYC, no account, no deposit address controlled by a third party, and — most importantly — without creating any permanent on-chain link between your BTC and XMR addresses that a blockchain analyst could later follow.

In March 2026, atomic swap support between BTC and XMR is mature, actively maintained, and used daily by privacy-focused users who want to move value from transparent chains to the only major coin that hides sender, receiver and amount by default.

There are currently two main practical paths:

  1. COMIT → Farcaster atomic swap protocol (BTC ↔ XMR via submarine swaps / reverse submarine swaps) → most reliable and actively supported implementation right now

  2. Haveno (decentralized P2P exchange built specifically for Monero) → true DEX-style atomic swaps with multisig escrow (still the most decentralized long-term vision)

Why Atomic Swaps Are Superior for Privacy

When you use a no-KYC instant swap service (even the best ones), the platform still sees both sides of the trade and — depending on liquidity sources — can create temporary or partial linking information.

With a real atomic swap:

  • There is no third party that ever holds both assets.

  • The swap either fully succeeds or fully fails — no middle state where funds can be stolen or logged.

  • On-chain there is no direct link between your BTC input address and your XMR output address.

  • You never send funds to anyone else’s address.

This makes atomic swaps the gold standard for privacy-preserving BTC → XMR conversions.

Requirements (COMIT / Farcaster Route)

Hardware / Software

  • A computer (Linux, macOS or Windows WSL2 recommended)

  • Bitcoin Core node or a trusted Electrum server (for BTC)

  • Monero daemon or trusted remote node (for XMR)

  • Rust toolchain (rustup)

  • Git

  • ~10–30 GB free disk space (mostly for BTC chain data if running full node)

Recommended Wallets / Nodes

  • BTC: Bitcoin Core (full node) or Electrum personal server

  • XMR: Monero daemon (monerod) + wallet-rpc or Feather Wallet with local node

  • Swap software: farcaster-node + xmr-btc-swap CLI (the actively maintained fork)

Step-by-Step: Performing a BTC → XMR Atomic Swap (Farcaster / xmr-btc-swap)

1. Install Dependencies

On Ubuntu/Debian:

Bash

sudo apt update && sudo apt install -y build-essential pkg-config libssl-dev libzmq3-dev clang cmake git curl

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

source "$HOME/.cargo/env"

2. Clone & Build the Software

Bash

git clone https://github.com/farcaster-project/farcaster-node.git

cd farcaster-node

git checkout release/latest      # or specific tag

cargo build --release

Bash

git clone https://github.com/farcaster-project/xmr-btc-swap.git

cd xmr-btc-swap

cargo build --release

You now have two binaries:

  • farcasterd (the node daemon)

  • swap-cli (the command-line interface)

3. Run Bitcoin & Monero Nodes (or use trusted remote nodes)

Bitcoin (recommended full node for privacy):

Bash

bitcoind -daemon -txindex=1

Monero (full node strongly recommended):

Bash

monerod --detach --rpc-bind-ip=127.0.0.1 --rpc-bind-port=18081 --confirm-external-bind

4. Start farcasterd

Create a basic config file ~/.farcaster/farcaster.toml

toml

[bitcoin]

datadir = "/home/user/.bitcoin"

[monero]

datadir = "/home/user/.bitmonero"

[swap]

datadir = "/home/user/.farcaster/swaps"

Start the daemon:

Bash

./target/release/farcasterd

5. Create a New Swap Request (Maker – the person selling XMR / buying BTC)

Bash

./target/release/swap-cli make \

  --btc-amount 0.05 \

  --xmr-amount 17.2 \          # adjust according to current market rate

  --btc-refund-address bc1q... \

  --xmr-redeem-address 4A... \

  --cancel-timelock 48h \

  --punish-timelock 24h

This command generates a swap ID and a public offer you can share (or post on forums / Telegram groups).

6. Take the Offer (Taker – the person selling BTC / buying XMR)

The taker runs:

Bash

./target/release/swap-cli take <swap-id-from-maker>

Both parties now run:

Bash

./target/release/swap-cli swap <swap-id> --btc-wallet <your-btc-wallet-name> --xmr-wallet <your-xmr-wallet-name>

The CLI guides you through the remaining steps:

  • Funding the BTC multisig

  • Funding the XMR lock

  • Cooperative redeem or punish path if the other party disappears

The swap either completes atomically or safely refunds both parties after the timelock.

Alternative: Haveno – Fully Decentralized P2P Atomic Swaps

Haveno is a Monero-native decentralized exchange that uses atomic swaps under the hood (multisig + hash-time-locked contracts).

Pros:

  • No central point of failure

  • Fiat on-ramps possible (cash-by-mail, bank transfers, etc.)

  • Built-in escrow protection

Cons:

  • Slower (hours to days to match a trade)

  • Lower liquidity than instant swaps

  • Steeper learning curve

How to use Haveno:

  1. Download the latest release from https://github.com/haveno-dex/haveno/releases

  2. Run the daemon & desktop GUI

  3. Create or import wallet

  4. Post buy/sell offer or take existing offers

  5. Complete trade via built-in atomic swap protocol

Haveno is ideal for maximum decentralization and fiat ↔ XMR trades, but Coincraddle + farcaster-cli is faster for pure crypto ↔ XMR swaps.

Security & Privacy Best Practices

  • Always run your own BTC and XMR nodes (or use trusted personal Electrum / monerod instances).

  • Use a dedicated swap machine / VM if possible.

  • Route all traffic through Tor.

  • Generate fresh XMR subaddresses for each swap.

  • Use hardware wallets to sign BTC transactions.

  • Never reuse BTC addresses across swaps.

  • Keep swap amounts small initially until you are confident.

Frequently Asked Questions

Is there a GUI for BTC ↔ XMR atomic swaps?

Not yet for farcaster/xmr-btc-swap (CLI only in 2026). Haveno has a full GUI.

How long does an atomic swap take?

Usually 30 minutes to 2 hours (mostly waiting for confirmations and timelocks).

What is the minimum amount?

Typically 0.001–0.01 BTC equivalent (depends on fees and liquidity).

Can I get scammed?

No — the atomic nature means either both sides get their coins or both get refunds after timeout.

Why not just use a no-KYC instant swap service?

You can — but they create a temporary third-party link. Atomic swaps remove even that.

Conclusion

In 2026, the cleanest, most private way to trade BTC for XMR is still an atomic swap using the farcaster-node + xmr-btc-swap CLI tools (or Haveno for full decentralization).

While instant no-KYC swap platforms like Coincraddle are faster and easier for most people, atomic swaps offer the highest theoretical privacy because no third party ever touches both sides of the trade.

If you value absolute sovereignty and are comfortable with a command-line workflow, set up farcaster-node today. If you want speed and simplicity without sacrificing meaningful privacy, Coincraddle remains the practical daily choice.

Whichever path you take, keep your BTC and XMR separated, use fresh addresses, run your own nodes, and never trust centralized custody.

Privacy is not convenient — but it is possible.

Stay sovereign. Happy swapping