{"id":54365,"date":"2024-06-14T13:34:58","date_gmt":"2024-06-14T13:34:58","guid":{"rendered":"https:\/\/buycrypt.com\/blog\/crypto-taxes-explained\/"},"modified":"2026-10-12T20:07:01","modified_gmt":"2026-10-12T20:07:01","slug":"crypto-taxes-explained","status":"publish","type":"post","link":"https:\/\/buycrypt.com\/blog\/en\/crypto-taxes-explained\/","title":{"rendered":"Crypto taxes: when you owe them and how to keep records"},"content":{"rendered":"<p class=\"bcl-lead\">A lot of people only start thinking about crypto taxes when a letter from the tax office shows up. In this lesson we&#039;ll cover which transactions count as a taxable event in most countries, how to calculate the gain on a trade, how different countries approach it, and how to keep records so that doing your tax return doesn&#039;t turn into an archaeological dig. This is an overview of the principles, not tax advice: every country has its own rules, and they change regularly.<\/p>\n<div class=\"bcl-tldr\">\n<div class=\"bcl-box-h\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 2 4 14h7l-1 8 9-12h-7l1-8z\"\/><\/svg>Key takeaways<\/div>\n<ul>\n<li>Tax usually kicks in not when you buy, but when you sell, swap or receive crypto as income.<\/li>\n<li>Your gain is the difference between the sale price and the purchase price, taking fees into account.<\/li>\n<li>Exchanges increasingly share customer data with tax authorities, so hiding transactions is getting harder.<\/li>\n<li>Rules depend on the country and keep changing, so check the current law or talk to a tax advisor.<\/li>\n<\/ul>\n<\/div>\n<nav class=\"bcl-toc\" aria-label=\"Lesson contents\">\n<div class=\"bcl-box-h\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01\"\/><\/svg>In this lesson<\/div>\n<ol>\n<li><a href=\"#bcl-s1\">Why crypto stopped being a gray zone long ago<\/a><\/li>\n<li><a href=\"#bcl-s2\">Which transactions are usually taxed<\/a><\/li>\n<li><a href=\"#bcl-s3\">How your gain is calculated<\/a><\/li>\n<li><a href=\"#bcl-s4\">How it works in different countries<\/a><\/li>\n<li><a href=\"#bcl-s5\">How to keep records so tax season doesn&#039;t hurt<\/a><\/li>\n<li><a href=\"#bcl-s6\">Common mistakes on crypto tax returns<\/a><\/li>\n<\/ol>\n<\/nav>\n<h2 id=\"bcl-s1\">Why crypto stopped being a gray zone long ago<\/h2>\n<p>Not so long ago, plenty of people believed crypto transactions went unnoticed. That was never true: the blockchain is open to everyone, and exchanges hold data on their verified customers. Now governments are agreeing to get this information automatically.<\/p>\n<p>In the EU, the DAC8 directive has been in force since January 1, 2026: crypto service providers collect information on their customers&#039; transactions and report it to tax authorities. The OECD has developed a similar data-sharing framework, CARF, which many countries outside the EU have signed up to. In the US, starting with 2025 transactions, brokers issue a new form, 1099-DA, to their customers and the IRS.<\/p>\n<p>The practical takeaway: keep records of your trades even if you&#039;re not yet sure whether you owe any tax. When the question comes up, you&#039;ll have the numbers you need for the calculation at hand, not just the statement the exchange has already sent to the government.<\/p>\n<div class=\"bcl-note bcl-note-term\"><span class=\"bcl-note-i\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 4.5A2.5 2.5 0 0 1 6.5 2H20v17H6.5A2.5 2.5 0 0 0 4 21.5v-17z\"\/><path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\/><\/svg><\/span><\/p>\n<div>\n<div class=\"bcl-note-k\">Term \u00b7 Taxable event<\/div>\n<p>A transaction after which you may have to pay tax or report income. In most countries, simply buying crypto with regular money doesn&#039;t count as a taxable event.<\/p>\n<\/div>\n<\/div>\n<h2 id=\"bcl-s2\">Which transactions are usually taxed<\/h2>\n<p>Most countries follow a similar logic: when you lock in a gain or receive something of new value, tax kicks in. Holding the bitcoin you bought? No income yet. Sold it for more than you paid? Now you have a gain, and tax may be due on it.<\/p>\n<p>Swapping one coin for another, however, catches a lot of people off guard. In the US, Germany or the UK, for example, swapping ETH for SOL counts as selling your ETH at market price, even if you haven&#039;t cashed out a single dollar to your card. Moving funds between your own wallets usually isn&#039;t taxed, but you need to be able to prove they&#039;re yours.<\/p>\n<p>Futures and leverage make things even more complicated. In some places, gains from derivatives are taxed the same way as selling coins; in others, they have their own rules and limits on offsetting losses. If you trade futures actively, sort this out before the year starts, not after.<\/p>\n<ul class=\"bcl-list\">\n<li>Selling crypto for regular money.<\/li>\n<li>Swapping one cryptocurrency for another, in many countries.<\/li>\n<li>Paying for goods and services with crypto.<\/li>\n<li>Salaries, fees and payment for work in crypto.<\/li>\n<li>Rewards from staking, mining and token airdrops; how they&#039;re treated depends on the country.<\/li>\n<li>Gains from trading derivatives, such as futures.<\/li>\n<\/ul>\n<h2 id=\"bcl-s3\">How your gain is calculated<\/h2>\n<p>The formula is simple: take the sale proceeds and subtract the purchase cost (also called the cost basis) and any fees you&#039;re allowed to deduct. If the result is positive, that&#039;s your gain; if it&#039;s negative, it&#039;s a loss, which some countries let you offset against gains.<\/p>\n<p>Things get tricky when you&#039;ve bought the same coin several times at different prices: which batch did you actually sell? Some countries require the FIFO method, where the earliest purchases are treated as sold first; others use the average price; still others let you pick a specific batch. The method can make a big difference to how much tax you owe.<\/p>\n<p>Income you receive in crypto is handled separately. <a href=\"https:\/\/buycrypt.com\/blog\/en\/hodling-and-staking\/\">Staking rewards<\/a> or a salary paid in USDT are usually valued at the market price at the moment you receive them. That price becomes your cost basis, and when you sell later, your gain is calculated from it.<\/p>\n<div class=\"bcl-note bcl-note-example\"><span class=\"bcl-note-i\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 20V10M10 20V4M16 20v-7M22 20H2\"\/><\/svg><\/span><\/p>\n<div>\n<div class=\"bcl-note-k\">Example \u00b7 An example with two purchases<\/div>\n<p>You bought 1 ETH for $2,000, then another for $3,000, and later sold 1 ETH for $3,500. Under FIFO, the first purchase is the one sold, and your gain is $1,500. Using the average price, the cost basis is $2,500 and the gain is $1,000. Fees will reduce both amounts.<\/p>\n<\/div>\n<\/div>\n<h2 id=\"bcl-s4\">How it works in different countries<\/h2>\n<p>There are no universal rules, and even within one country they change from year to year. The table below shows how several jurisdictions handled it at the time this lesson was written. Use it as a reference point, not as a basis for your tax return: before filing, check the current law on your tax authority&#039;s website.<\/p>\n<p>It&#039;s not just your citizenship that matters but also your tax residency. If you live in one country and use an exchange based in another, you&#039;ll usually have to pay tax in the country where you&#039;re a resident. For how different countries treat crypto in general, see <a href=\"https:\/\/buycrypt.com\/blog\/en\/crypto-regulation-by-country\/\">the lesson on crypto regulation by country<\/a>.<\/p>\n<div class=\"bcl-table\">\n<table>\n<thead>\n<tr>\n<th>Country<\/th>\n<th>General approach<\/th>\n<th>What to keep in mind<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>US<\/td>\n<td>Crypto is property, and gains are subject to capital gains tax<\/td>\n<td>The rate depends on whether you held the asset for more than a year; staking rewards are taxed as income<\/td>\n<\/tr>\n<tr>\n<td>Germany<\/td>\n<td>Private sales are subject to income tax<\/td>\n<td>Gains from a sale are tax-free after holding for more than a year; there&#039;s an annual threshold of \u20ac1,000<\/td>\n<\/tr>\n<tr>\n<td>UK<\/td>\n<td>Capital gains tax on selling and swapping<\/td>\n<td>Swapping crypto for crypto also counts as a sale<\/td>\n<\/tr>\n<tr>\n<td>Russia<\/td>\n<td>Since 2025, digital currency has been treated as property for tax purposes<\/td>\n<td>Income from transactions is subject to personal income tax, with separate rules for mining<\/td>\n<\/tr>\n<tr>\n<td>EU countries<\/td>\n<td>Each country has its own rules<\/td>\n<td>Since 2026, crypto service providers report customer data under DAC8<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"bcl-note bcl-note-warn\"><span class=\"bcl-note-i\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 4 2.5 20h19L12 4z\"\/><path d=\"M12 10v4M12 17.2v.1\"\/><\/svg><\/span><\/p>\n<div>\n<div class=\"bcl-note-k\">Important \u00b7 No legal guarantees<\/div>\n<p>This lesson covers general principles. Rates, deadlines, exemptions and reporting forms change, and a mistake on your tax return can lead to penalties. If significant amounts are involved, go through your situation with a tax advisor.<\/p>\n<\/div>\n<\/div>\n<h2 id=\"bcl-s5\">How to keep records so tax season doesn&#039;t hurt<\/h2>\n<p>When you&#039;re doing your tax return, the hard part isn&#039;t the math itself but gathering the data. Your trades are scattered across several wallets and exchanges, some platforms no longer exist, and transfers between your own addresses don&#039;t add up. If you keep records throughout the year, you&#039;ll avoid most of these headaches.<\/p>\n<p>A regular spreadsheet works fine for record-keeping, and so do services like Koinly and CoinTracking, which import your history from exchanges and calculate gains using the method you choose. Only connect them with read-only API keys. We covered how to set up the trade journal itself in the <a href=\"https:\/\/buycrypt.com\/blog\/en\/how-to-build-a-crypto-portfolio\/\">lesson on how to build and manage a crypto portfolio<\/a>.<\/p>\n<p>If you use several wallets and exchanges, put together a simple map: which addresses are yours, where you have accounts, and when you last exported your history. Without records, you won&#039;t be able to piece it all together a couple of years from now, and the tax authority has the right to request data for past years too.<\/p>\n<ol class=\"bcl-list\">\n<li>Once a quarter, export your trade and transfer history from every exchange.<\/li>\n<li>Save your wallet addresses and mark transfers between them.<\/li>\n<li>Record the market price at the moment you receive rewards, salary and airdrops.<\/li>\n<li>Store your exports outside the exchange: a platform can shut down or delete old data.<\/li>\n<li>Before filing your return, reconcile your totals with the data the exchange may have sent to the tax authority.<\/li>\n<\/ol>\n<div class=\"bcl-note bcl-note-tip\"><span class=\"bcl-note-i\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 18h6M10 21h4M12 3a6 6 0 0 0-3.6 10.8c.6.5 1 1.2 1.1 2V16h5v-.2c.1-.8.5-1.5 1.1-2A6 6 0 0 0 12 3z\"\/><\/svg><\/span><\/p>\n<div>\n<div class=\"bcl-note-k\">Tip \u00b7 Record your losses too<\/div>\n<p>In many countries, a loss on a sale can be offset against gains to reduce your tax, but you need to be able to prove it. So record your losing trades just as carefully as your winning ones.<\/p>\n<\/div>\n<\/div>\n<h2 id=\"bcl-s6\">Common mistakes on crypto tax returns<\/h2>\n<p>The first mistake is thinking tax only applies when you cash out to your card. Picture a trader who swaps coins all year and never takes any money out of crypto. In a country where swaps count as sales, they&#039;ve already racked up dozens of taxable events. If the market crashes before the year ends, it gets ugly: tax is owed on past gains, and there&#039;s nothing left to pay it with.<\/p>\n<p>The second mistake is forgetting about small income. Staking income, exchange bonuses, token airdrops and crypto cashback don&#039;t amount to much on their own, but over a year they add up. The third is not recording fees: they reduce your taxable gain, and without records you won&#039;t be able to reconstruct them later.<\/p>\n<p>There are often legal ways to lower your tax: the holding period, offsetting losses, deductions and special regimes. What&#039;s available and where is covered in the <a href=\"https:\/\/buycrypt.com\/blog\/en\/crypto-tax-breaks\/\">lesson on tax breaks for crypto investors<\/a>. Sham trades and hiding income, on the other hand, aren&#039;t legal ways to do it and usually end in penalties.<\/p>\n<div class=\"bcl-practice\">\n<div class=\"bcl-practice-task\"><span class=\"bcl-practice-i\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><circle cx=\"12\" cy=\"12\" r=\"5\"\/><circle cx=\"12\" cy=\"12\" r=\"1.5\"\/><\/svg><\/span><\/p>\n<div>\n<div class=\"bcl-box-h\">Lesson task<\/div>\n<p>Set up a record-keeping spreadsheet with the columns date, transaction, coin, amount, price and fee, and enter the example from this lesson: buy 1 ETH for $2,000, buy another 1 ETH for $3,000, sell 1 ETH for $3,500, with a $5 fee on each transaction. Calculate the gain using FIFO and the average price: you should get $1,490 and $990. Then check your country&#039;s tax authority website to find out which of these methods applies where you live.<\/p>\n<\/div>\n<\/div>\n<div class=\"bcl-offer bcl-offer-sm\">\n<div class=\"bcl-offer-h\"><span class=\"bcl-offer-ic\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4z\"\/><path d=\"M7 6H4v1a3 3 0 0 0 3 3M17 6h3v1a3 3 0 0 1-3 3\"\/><\/svg><\/span><\/p>\n<div><small>Learn and earn<\/small><b>Free tournaments every day \u2014 your way to USDT prizes<\/b><\/div>\n<\/div>\n<p>Entry is free and you trade on a demo account, so you need no money of your own. Free tournaments pay out Tour Passes, and those get you into tournaments with USDT prizes. The best go further \u2014 to a $5,000 funded account.<\/p>\n<div class=\"bcl-offer-btns\"><a class=\"bcl-btn gold\" href=\"https:\/\/buycrypt.com\/tournaments\"><svg class=\"bcl-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4z\"\/><path d=\"M7 6H4v1a3 3 0 0 0 3 3M17 6h3v1a3 3 0 0 1-3 3\"\/><\/svg>Join for free<\/a><a class=\"bcl-btn ghost\" href=\"https:\/\/buycrypt.com\/tournaments-guide\">How tournaments work<\/a><\/div>\n<\/div>\n<\/div>\n<section class=\"bcl-faq\">\n<h2 id=\"bcl-faq\">FAQ<\/h2>\n<details>\n<summary>Do I have to pay tax if I bought crypto and haven&#039;t sold it?<\/summary>\n<p>In most countries, simply buying and holding isn&#039;t taxed: tax kicks in when you sell, swap or receive income. But some jurisdictions require you to declare foreign accounts and assets, so check your country&#039;s rules.<\/p>\n<\/details>\n<details>\n<summary>Is swapping one cryptocurrency for another taxable?<\/summary>\n<p>In many countries, yes: a swap counts as selling the first coin at market price. But other approaches exist, so check your country&#039;s rules for the specific year.<\/p>\n<\/details>\n<details>\n<summary>What happens if you don&#039;t pay taxes on crypto?<\/summary>\n<p>The consequences depend on the country, ranging from back taxes, interest and fines to criminal liability for serious violations. And with exchanges and tax authorities sharing data, the chances that your transactions go unnoticed keep shrinking.<\/p>\n<\/details>\n<details>\n<summary>How do you prove your purchase cost if the exchange has shut down?<\/summary>\n<p>Saved exports, email confirmations, bank statements showing deposits and blockchain records can all help. That&#039;s why you should export your trade history regularly, not just before filing your return.<\/p>\n<\/details>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Crypto taxes explained: which transactions are usually taxed, how to calculate gains and keep trade records, and how the US, Germany, Russia and the EU differ.<\/p>\n","protected":false},"author":1,"featured_media":54484,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Crypto Taxes Explained: What's Taxable and How to Calculate","rank_math_description":"Crypto taxes explained: which transactions are usually taxed, how to calculate gains and keep trade records, and how the US, Germany, Russia and the EU differ.","rank_math_focus_keyword":"crypto taxes","_forpost_external_id":"","_seorun_article_id":"","footnotes":""},"categories":[16352],"tags":[],"class_list":["post-54365","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-crypto-school","resize-featured-image"],"lang":"en","translations":{"en":54365,"ru":20042,"uk":54643},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/posts\/54365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/comments?post=54365"}],"version-history":[{"count":2,"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/posts\/54365\/revisions"}],"predecessor-version":[{"id":54573,"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/posts\/54365\/revisions\/54573"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/media\/54484"}],"wp:attachment":[{"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/media?parent=54365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/categories?post=54365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buycrypt.com\/blog\/wp-json\/wp\/v2\/tags?post=54365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}