VeilSwap
← All posts
Privacy2026-10-319 min read

Mixing Before a Swap: What CoinJoin Buys, What the Swap Takes Back

Eight Bitcoin blocks, 34,875 transactions, 47 with equal outputs — and zero classic mix rounds. Plus our own order data: 121 orders, 112 deposit addresses, 19 paid. Where the link leaks at the swap boundary.

Mixing and swapping get sold as two coats of paint on the same wall. They are not. A CoinJoin changes who can tell which coin is yours inside Bitcoin; an instant swap changes which chain your value lands on, and to do that it has to learn the exact link you were trying to hide. I measured both halves on 31 October 2026: eight Bitcoin blocks for what mixed coins actually look like on chain, and this site's own order database plus live quotes for what the swap side sees. (privacy coins vs mixers)

What mixing actually hands you

A CoinJoin takes your UTXO, splits it into the round's denomination, and hands back one output among N that look alike. What you own afterwards is not clean money; it is one member of a set plus a timestamp. The set is the privacy. If forty people joined the round, the analyst's first question — which of these forty outputs is yours — has no answer from the chain alone. That is real and worth paying for. What it does not do is change the coins' history: the inputs are still the inputs, and the round itself is a public event that any analyst can annotate. (privacy coins vs mixers)

The classic fingerprint has almost vanished

Folklore says a mix looks like many inputs feeding a row of identical outputs. I read every transaction in blocks 973,955 to 973,962 — 34,875 non-coinbase transactions, 78,960 outputs — and counted those whose largest group of identical-value outputs had at least five members: 47 transactions, 0.135%. Twenty-three of them spent a single input, which is the shape of a payout batch, not a mix. The biggest groups were 49 outputs of 1,999,932 sats from one input, and seven transactions with 39 outputs of 484 sats each: four hundred and eighty-four satoshis, nowhere near a mix denomination. The largest multi-input case spent 316 inputs into 343 outputs, and its biggest equal group was 32 outputs of 13,122 sats. (how Monero fees work)

Now the number that matters. Not one transaction in those eight blocks produced five or more outputs of exactly 0.01, 0.05, 0.1 or 0.5 BTC — the denominations tutorials still name — even though those same values appear as ordinary single outputs 63, 74, 71 and 18 times. A 0.01 BTC output is unremarkable: eight per block. A row of thirty identical 0.1 BTC outputs would be a beacon, and the coordinators people actually use today know it. So shape no longer identifies the round, which cuts both ways. You cannot verify 'my mix worked' by looking for the fingerprint, and an analyst cannot find you by it either. What remains identifiable is not the round; it is your exit.

The swap side: the link is the product

An instant swap has one job: take value in on chain A and put value out on chain B for the same customer. That requires a record tying deposit to payout. This site's order endpoint accepts seven fields and no account — from asset, to asset, amount, payout address, payout memo, refund address, refund memo — and it will not create an order without the refund address: 'missing_refund_address: a refund address is required — if the swap fails, funds can only be returned there'. The deposit address is minted per order, the price is locked for 120 seconds (a quote taken at 10:06:31 UTC expired at 10:08:33), and you have 30 minutes to fund it. Amount, time, payout address, refund address: every one of those is a link. The swap cannot work without them, so the only question is who holds them — and the answer is the pool, not the page you typed into. (recovering misdirected funds)

Our own numbers are small enough to be embarrassing and useful at the same time. Since 24 September 2026 this front end recorded 121 orders and 19 paid ones — about one payment every two days, across ChangeNOW (17), Exolix (1) and FixedFloat (1). The anonymity set at the swap layer is not a crowd; it is whoever else is paying the same pool in the same window. And 121 orders produced 112 distinct deposit addresses: two addresses were handed out four and seven times, all of those orders unpaid. A quotation artefact, not a funded cluster — but the mechanism is the point. If a provider returns the same deposit address twice and you pay both times, the chain puts both payments in one address and no heuristic is needed.

Spending the smallest outputs is the expensive part

Post-mix outputs come in round sizes, and round sizes near the floor are bad value. Live quotes on 31 October 2026, BTC to XMR: 0.001 BTC returned 0.1185433 XMR, an implied 118.54 XMR per BTC against a spot price of 129.73 — 8.6% below market. 0.01 BTC returned 127.07 (−2.05%), 0.05 BTC 127.84 (−1.46%), 0.1 BTC 127.91 (−1.40%). Two quotes split that into a marginal rate of 128.007 XMR per BTC and a fixed charge of 0.00007303 BTC, about $5.65 at BTC $77,359. The minimum is 0.00018237 BTC, and at 0.00018 the quote collapses to 75.12 XMR per BTC — 42% under spot, because the fixed charge eats most of the order. The network fee is not the problem: a one-in-two-out P2WPKH deposit is 141 vB, 141 sat at today's 1 sat/vB, eleven cents. (how Monero fees work)

Where the link actually leaks

Four channels, in order of how often people get caught by them. First, the amount: paying the exact round size from a single output is unremarkable; paying the odd remainder of a mix round is a signature. Second, the change: if your deposit transaction returns change to a wallet that also holds your other mixed outputs, that change output clusters everything you own. Third, one address, many inputs: sending three mixed UTXOs to a single deposit address links them by address alone, before any heuristic runs, and no amount of mixing survives that. Fourth, the off-chain fields: a refund address that lives in the same wallet as your mixed coins, and the IP that created the order in the first place. (recovering misdirected funds)

Rules that survive contact with a real chain

One: one mixed UTXO per swap. To move 0.1 BTC, make one deposit, not three. Two: pay the exact quoted amount from a single output, and treat the wallet that received change as public from then on. Three: never reuse the payout address — it is the one field that survives the swap in plaintext on the destination chain. Four: take the refund address from a different wallet than the mixed coins; it is used only on failure, which is exactly when you cannot choose it. Five: reach the site over Tor; a 120-second quote and a 30-minute window are short enough that the added latency costs nothing. Six: do not loop — mix, swap, mix again buys more public events and nothing else. (Is Tor safe for swaps?)

Why we don't recommend stacking

If the goal is a Monero position, the swap alone already breaks the trail: the output sits on a ledger where amounts and parties are hidden. Adding a mix before it buys protection inside Bitcoin that you then throw away at the boundary, because the swap knows your deposit, your payout address, your refund address and your IP, and the pool keeps that record. If the goal is to clean history, mixing does not do that either: the round is public, the inputs are public, the deposit into the swap is public. What mixing changes is who can say which output is yours — not whether your coins were ever near something. Decide which layer you are buying anonymity at, pay for it once, and keep the second step from giving the first one away. (recovering misdirected funds)

Frequently asked questions

Does CoinJoin make a swap untraceable?

No. In eight blocks read on 31 October 2026 — 34,875 transactions — only 47 had five or more equal-value outputs and not one had a classic equal round at 0.01, 0.05, 0.1 or 0.5 BTC. The swap still records the amount, the payout address, the refund address and the IP, and the pool keeps that record; mixing hides which output is yours inside Bitcoin, not who received the other side.

Is it worth mixing before swapping to Monero?

Usually not. On 31 October 2026 a 0.001 BTC post-mix output returned 118.54 XMR per BTC against a spot 129.73 — 8.6% lost to a fixed charge of 0.00007303 BTC ($5.65). Above 0.02 BTC the same charge costs under 1.7%, so if you do mix first, spend one output of at least 0.02 BTC instead of three small ones.

Can I send several mixed UTXOs to one deposit address?

No. One address receiving three inputs clusters them by address alone, before any heuristic runs. Our own records show why it matters in reverse too: 121 orders used 112 deposit addresses, and two addresses were handed out four and seven times, so a repeat payer can end up linked without doing anything wrong. One order, one output, one fresh address.

Ready to swap?

No account · No KYC · No email

Exchange now
Mixing Before a Swap: What CoinJoin Buys, What the Swap Takes Back