Ultimate Crypto Tax Guide 2023

Crypto Tax Sucks, This Guide Makes It Easier

Let's face it: crypto taxes suck.

Most accountants haven’t even figured out how to help their clients, either.

So you’re kinda in this “do I overpay my taxes? Or just not report them and go to jail” situation.

But it doesn’t have to be that way. 

And I’ve committed to help make crypto tax easy again (I long for the days when I just bought and HODL'd Bitcoin)

So in this article, I will teach you everything you need to know to get a handle on your crypto taxes this year.

Who Am I To Teach This?

I want to say straight out of the gate that I am not an accountant. So it is important to consult your accountant when implementing this information.

I’m just a guy who has been in crypto since 2017 and had a lot of anxiety around my crypto taxes. So I wanted to do something about it.

I beat my head against the wall for HOURS trying to figure out why my crypto tax software was showing 2x the capital gain I was expecting for the 2020 tax year.

And even after I went back to fix the transactions manually - I still made some costly mistakes because I didn’t know what I was doing.

I vowed to learn how to properly do my crypto tax for the 2021 tax year so I didn’t overpay and stress so much.

And after hours of research I learned that if you know what you are doing it’s actually pretty easy to fix the crypto tax reports (and potentially save a ton of money!)

That’s why I decided to record all the time & money saving tricks I learned to help other people.

I created a Continuing Professional Development (CPD) course that teaches accountants & bookkeepers how to do this for their clients.

I’ve also created a service that does people's crypto taxes for them.

And in today’s article, I am going to break down for you some of the strategies we use to reduce clients taxable crypto gains.

That way, if you choose to do this yourself, you have a starting point to reduce crypto tax induced stress & anxiety!

Understanding Crypto Taxes

There are some basic principles you need to understand when it comes to your crypto taxes.

There are going to be two areas where you get taxed (depending on the tax laws in your country).

1)Income from crypto.

Depending on the tax laws in your country, this might include:

  • Getting paid in crypto

  • Earning crypto rewards from staking tokens (including NFTS)

  • “Interest” from centralized platforms like Nexo or decentralized platforms like Compound, Aave, etc.

2)Capital Gains/Losses

This is the amount you earn or lose from acquiring & disposing of crypto assets.

Usually, the way this to calculate capital gains is by taking the value of the tokens you dispose of (trade, send to driends/family, etc.) and subtracting the cost basis of those tokens.

The cost basis is essentially: how much did you acquire the tokens for? And there are multiple ways to calculate this (consult your accountant to determine the best cost basis method for you)

Ex. if you bought 1 BTC for $3000 and sold it for $20000 your taxable gain is $17k.

This basic concept is important to understand. Having an accurate cost basis for your tokens can be the difference between getting a tax credit this year vs. paying for a gain you didn’t actually make!

Now that we’ve defined some basic terms, let’s talk about how to sort out your crypto taxes.

Should I Use Crypto Tax Software

The best first step to make crypto tax easy is to start using a crypto tax software.

But, crypto tax software is still a new product. And like all new products, there are some kinks to work out.

The biggest problem with crypto tax software is that their reports often overstate how much you actually need to pay in taxes. Or they understate your gains.

Why? Because they are not equipped to handle many defi and NFT transactions properly. 

Especially, the more “degen” plays.

I’ve seen people whose crypto tax software said they had a $5.5 million gain. And by applying the principles I’ll teach you in this article, I was able to help them get that down to a $200k tax loss. Legally.

That’s the difference between liquidating $2.5 million in your portfolio vs. getting to apply a $200k tax credit. 

I’ve also seen some people who have used a crypto tax software in 2021 and were happy to see a loss on their report. So they didn’t question it.

But then in 2022 they had an unfathomably high gain because their cost basis went to near $0 and every transaction they made looked like a gain.

So does this mean you should avoid crypto tax softwares completely?


They are incredibly valuable.

-They automatically pull your transaction data off the blockchain.
-They accurately track your cost basis.
-They are decent at automatically categorizing basic transactions (buy, sell, transfer).

So crypto tax software beats the hell out of using a spreadsheet to track transactions, calculate cost basis, capital gains, costs, etc.

And when you manually categorize your transactions properly, crypto tax software handles all the heavy lifting of calculating your taxable income for you.

But Why Do Crypto Tax Softwares Overstate My Gains?

The purpose of a crypto tax software is not to save you money on your crypto taxes.

The purpose is to make sure that you file a crypto tax report that is compliant with your tax office’s regulations.

So, by default, it will give your transactions the most strict tax treatment possible.

It is up to you and your accountant to determine which tax laws are applicable, and which aren’t. 

And then, you must manually edit the transactions in order to get a more accurate report to avoid overpaying.

What types of transactions cause problems?

I’ve found the following list of transactions to be the most likely to have errors in crypto tax softwares.

  • Yield Farming or Staking Altcoins

  • Trading on a Dex

  • Presales, Private Sales, ICOs

  • Using Autocompounders

  • Buying rewards tokens

  • NFT Mints and Pre-mints

  • Bridging tokens cross-chain

  • Providing Liquidity

  • Locking liquidity or tokens

  • Staking on dexes for rewards (Pools, Raids, Citadels)

  • Lending Networks (Like ola.finance)

But two other issues that can massively inflate your gains on a crypto tax report include:

  • Centralized exchanges like Kucoin and Crypto.com have incorrect timestamps

  • Forgetting to add ALL of your wallets to the software

What is The Best Crypto Tax Software?

I tried 6 crypto tax softwares (Koinly, Cointracker, Taxbit, Zenledger, Cointracking, Coin Panda)

Some of them were an immediate write off because they didn’t even support Binance Smart Chain wallets or some other chains I was using at the time (like FTM).

Others annoyed me because you needed a paid plan before seeing whether they worked.

And some just straight up did not have the capacity to interpret defi transactions.

Ultimately I found Koinly to be the undisputed champion of the space because:

1)You can preview your tax report for free
2)They have great customer support, even before you pay
3)They support every blockchain & exchange I used, but even if they didn’t I could upload a formatted csv of the wallets to pull the data in
4)Every crypto tax software struggled with NFTs and Defi. Koinly struggled the least.
5)The interface made correcting errors really easy to do.

*Note that I became an affiliate for Koinly after testing these softwares and choosing to use it for myself. I also use Koinly's accounting plan in-house for my firm.

How Can I Fix My Crypto Taxes?

Once you learn how to do your crypto taxes, you can usually fix all the high impact errors yourself.

It just takes time! So don't wait until last minute to start (unless you want to file an extension).

There are a few steps you need to take to lay the foundation.

Step 1: Set up your crypto tax software account. Pick whichever you want, but I prefer and recommend Koinly.

Step 2: Add all of your wallets and exchange accounts through either CSV or API.

Make sure to include EVERY blockchain you made a transaction on for each Metamask Wallet.

DO NOT try to hide wallets, this will lead to you paying more in taxes 9.9-out-of 10 times! If you used it: include it.

I've included some of Koinly's help documents for this step:

Step 3a go to the “Dashboard” in Koinly and see whether the balances Koinly shows for each token matches what is actually in your wallet.

You may want to use a wallet scanner like tin.network for your self custody wallets to get a picture of their balances for comparison.

If it matches, your report is probably already accurate.

If the balances don’t match, like in the examples pictured, then you know which tokens you need to focus on fixing errors for.

Step 3b Go to your “Tax Reports” tab and take a screenshot of the numbers it gives.

This gives you a baseline to work off of, it’s nice to go back later to look and see that your work might just have paid off ;)

Step 4 Click the “Settings Tab” and select the options that match the tax laws in your country.

By default, all of these are turned “on”

Consult your accountant about which are applicable to your country’s tax code, and which can be turned off.

You should also consult your accountant about which Cost Basis method is best for your situation. Once you choose a cost basis method, you must continue to use this every year. So this is an important step.

Finally, make sure the other settings are correct (ie. country, currency, tax year)

Now, you are ready to start investigating your transactions and correcting errors.

As I mentioned earlier,I have a course that shows you exactly how to do this for every possible transaction that will overstate your capital gains.

But for the purpose of this article, I am going to focus on two that I’ve found save people the most amount of tax in the least amount of time.

Liquidity Transactions

Adding liquidity to decentralized exchanges and yield farming are probably the most difficult for tax softwares to label.

The best way I have found to fix this is to grab the contract address for all of the liquidity pools you have entered from the blockchain scanner (like etherscan.io)

You can then search Koinly for transactions you made with these LP tokens.

Many times, I see gains overstated because people haven’t labeled moving their LP tokens into yield farms as “sent to pool” and “received from pool”.

This usually means that when you remove liquidity, and if you sell the tokens from your LP that they have a $0 cost basis.

This means that you are taxed on 100% of the gain.

Whereas when you properly label the transactions as sent to pool & received from pool the cost basis is attributed to the coins.

For example if you added $100 of BTC and $100 BNB LP on Knightswap today, the LP token should be valued at $200. 

When you send the LP to a yield farm, and label it as “sent to pool” in Koinly then there is no taxable event.

And when you take it out and label the transaction “received from pool” then the cost basis for the LP token is still $200.

If you remove liquidity the BTC and BNB you receive are assigned a $100 cost basis each.

If you sell both for $150 each then you have made $100 in taxable gains:

$150 x 2 = $300 sale price
- $100x2 = $200 cost basis
=$100 taxable gain.

Compare this to if you do NOT label the transactions as sent/received from pool.

When you send the LP tokens to the farm it looks like you disposed of them at $200. Any gains that might have occurred are taxed.

For example, If you only had a $50 cost basis for the BTC and $50 for BNB, then you actually have a $100 cost basis.

But the value of the LP token is $200 when you “dispose” of it by sending to the pool without labeling the transaction accordingly.

This locks in a $100 capital gain.

 Then, when you take the LP tokens out, it looks like you got them for free.

So the cost basis is $0.

If you then remove liquidity the cost basis for your BTC is $0 and the cost basis for your BNB is $0.

So if you sell $150 of BTC and $150 of BNB it looks like another $300 taxable gain!

Therefore, the difference in taxable income in this scenario is 3-4x reality. If your Liquidity transactions are not labeled correctly, you are massively overpaying!

Another place where liquidity transactions can go wrong in Koinly is when a token you add liquidity to does not have a coinmarketcap price feed.

Koinly will assume a $0 value, and it’s automations will not label this as a Liquidity transaction. 

Instead it either looks like you disposed of both tokens in the liquidity pair (taxable gain). r that you received the tokens for free ($0 cost basis, 100% taxable gain if you sell) 

So this is where you have to manually add the correct value of the tokens on the day where you add liquidity. Next, you merge the transactions so  Koinly recognizes them as a Liquidity transaction.

Staking Tokens & Pools

Another area that can cause issues is if you are staking tokens. For example, with KNIGHT pools or raids in decentralized exchanges like Knightswap.

For example, if you stake a DEX reward token like KNIGHT in pools/raids or whatever the dex calls it to earn other tokens.

This is another area where your tax can be massively overstated. The problem & solution is the same as with LP tokens

You must manually label when you stake tokens anywhere as “sent to pool”, and “received from pool” when you unstake.

Getting Help With Your Crypto Taxes

Would you love to get more support, step-by-step videos, as well as handy cheat sheets to make your crypto tax even easier?

If so, our Crypto Tax Made Easy course shows you EXACTLY how to identify & solve all the issues that commonly inflate your taxable gains by 3-4x.

If you'd rather just save the time & energy and have somebody else deal with your crypto taxes we also offer a “done-for-you service”. We do all of the heavy lifting to make sure you have an accurate tax report.

That way, you can have peace-of-mind that you are neither overpaying, nor potentially submitting a report with errors that get you in trouble in case of an audit.