CryptoTaxCalc logo CryptoTaxCalc
September 10, 2026 · 9 min read

Is Swapping One Crypto for Another Taxable? (Yes — Here Are the Rules in 5 Countries)

Two cryptocurrencies being swapped in a coin-to-coin trade that may be taxable

A friend of mine did what thousands of people did in 2021: he bought Ethereum, watched it rip, then traded it into an altcoin he saw mentioned online. Dollars never touched his bank account. When tax season came around, he told me, completely confident, "I never cashed out — so there's nothing to report, right?"

Wrong. And this is probably the single most expensive misconception in crypto taxes. In the US, the UK, Canada and Australia, every coin-to-coin swap is a taxable disposal. Germany is more generous, but even there the trade can be taxable depending on timing.

The full list of what triggers a tax bill is in my earlier guide on when you actually owe crypto tax. This piece goes deep on the one event people underestimate most: the swap.

Why a swap counts as a sale

Think about what physically happens when you convert ETH into BTC. You don't "transform" one coin into another. You sell the ETH at its current market price and immediately buy Bitcoin with the proceeds. The fact that the proceeds exist for about two milliseconds inside the exchange's ledger doesn't matter to the tax authority.

Two things happen simultaneously, and each has tax consequences:

  1. The coin you give up is disposed of. Its market value at the moment of the trade is your proceeds.
  2. The coin you receive gets a new cost basis. That same market value is what the new coin "cost" you, which determines your gain when you eventually sell it.

Here's the math on my friend's trade. He bought 1 ETH for $2,000. A few months later he swapped it when ETH was worth $3,500:

Then the altcoin went to zero, of course. He owed tax on a $1,500 gain while sitting on a position worth nothing. You can run the same numbers on any of the country calculators from the homepage — proceeds minus basis minus fees is the core formula everywhere.

United States: every swap goes on Form 8949

The IRS classifies cryptocurrency as property, and exchanging one property for a different property is a realization event. That's been the IRS position since Notice 2014-21, and the question is asked point-blank on the tax return itself: the digital-asset question on Form 1040 asks whether you received or sold a digital asset during the year, and a coin-to-coin swap counts as a yes.

Practical implications:

United Kingdom: a disposal is a disposal

HMRC takes the same view. In their Cryptoassets Manual, exchanging one token for a different token is listed as a disposal that creates a chargeable gain or allowable loss. Your £3,000 Annual Exempt Amount shelters the first slice, and the rate above it is 18% (basic-rate taxpayers) or 24% (higher rates) for crypto.

The hard part in the UK isn't the rule, it's the bookkeeping. All holdings of the same token live in a single Section 104 pool with an average cost, and the 30-day bed-and-breakfast rule can rewire your basis if you sell and rebuy the same coin within a month. I've written a full breakdown of how cost basis actually works in each country — the UK pooling system trips up more people than the tax rate itself.

Germany: the swap is tax-free if you waited a year

This is where Germany does something genuinely different. A coin-to-coin trade counts as a private sale under §23 EStG, but if you held the coin you give up for at least 365 days, the gain is completely exempt — no upper limit. Hold ETH for 366 days, swap it into Bitcoin with a €40,000 gain, and the tax is zero on the swap (the Bitcoin then starts its own fresh one-year clock).

Inside the first year, short-term gains are taxed at your income-tax rate, though total gains from all private sales stay tax-free under the €1,000 Freigrenze. Note the trap: that's a Freigrenze, not a Freibetrag. €1,001 of gains means the whole €1,001 is taxable, not just €1. I walk through the day-counting, the staking caveats and the reporting form in the full Germany one-year-rule guide, and you can price a specific swap on the German calculator.

Canada: barter rules, valued in CAD

The CRA treats a crypto-for-crypto exchange as a barter transaction. You're considered to have disposed of the old coin for proceeds equal to the fair market value of the new coin, priced in Canadian dollars at the time of the trade. Half the resulting gain (the current inclusion rate on gains up to $250,000) lands in your income at your marginal rate.

Two Canadian quirks worth knowing. Your cost basis is the average cost (adjusted cost base) of all your identical coins, not the specific coins you picked — so there's no HIFO-style cherry-picking. And if you swap at a loss into something identical within 30 days, the superficial loss rule denies the loss.

Australia: market value of what you receive

The ATO is explicit that exchanging one digital asset for a different one is a CGT event. Your capital proceeds are the market value (in AUD) of the coin you receive at the time of the swap. Cost basis is what you paid for the coin you gave up, plus relevant fees.

The big Australian lever is the 12-month discount: hold the coin you're disposing of for more than a year and only 50% of the gain counts. That discount is decided entirely by the holding period of the outgoing coin, exactly like the US long-term question. The Australian calculator applies it automatically when you enter your dates.

The stablecoin question everyone actually asks

"But if I move ETH into USDC and never withdraw dollars, surely that's not cashing out?"

It is. Selling ETH for USDC is a disposal of the ETH and realizes the gain. The USDC is itself property — it's just property priced at a dollar. The fact that you stayed "in crypto" is irrelevant; you exited a volatile asset into a different asset.

What about USDC to USDT, one dollar-backed stablecoin to another? Still technically a disposal, still technically reportable. The gain will almost always be near zero because both coins track $1 — minus fees, it might even be a tiny loss. In practice many traders report these as zero-gain disposals or rely on their software to do it. The risk isn't the tax money; it's the omission showing up as unexplained activity when exchanges begin filing broker reports on your disposals.

Where people actually get killed: the records

One swap is easy to figure out on paper. Two hundred swaps across three exchanges, a bridge transfer, and a DeFi interaction? Now you need the euro or dollar value of every coin at the exact second of every trade, the basis of the specific coins consumed (or the pooled average, depending on country), and the fee treatment on both legs.

This is the part that turns a Sunday afternoon into a week of forensic accounting. You realistically need:

If you already have the CSV files from your exchanges, the batch importer on the homepage parses them entirely in your browser — nothing gets uploaded — and splits your sells into short-term and long-term buckets automatically. It's built for exactly this situation: dozens of disposals where doing Form 8949 by hand would be its own form of punishment.

Three mistakes worth avoiding

The short version

If you swapped one coin for a different coin, assume it was taxable unless you're in Germany and held the outgoing coin for a full year. Value the trade in your home currency at the moment it happened, subtract what the old coin cost you, and treat the difference as a gain or loss. Stablecoin moves rarely move the number much, but they're disposals too.

And if reading this just made you realize how many unreported swaps you've made, don't panic — find the CSV exports, run them through the batch importer, and get the number before anyone asks you for it. Knowing the bill is always better than guessing.

This is general information, not tax advice. Crypto tax rules continue to evolve, particularly around broker reporting in the US and staking treatment in Germany. For material amounts or complicated histories, confirm your position with a qualified tax professional.

← Back to Blog 📂 Batch Import (CSV) Calculate Your Tax →