I see a lot of bad tax info in here so let’s talk crypto and the US tax law
Disclaimer: I am not a CPA and if you have complex taxes I recommend talking to one
This is the first part of a two part post. The second will go over some different concepts for doing crypto accounting
I keep seeing a shit load of bad tax information in this sub when it comes to crypto and taxes so I thought I would write out a fairly comprehensive guide to it. If you would like to read the tax guidance from the IRS you can find it here. That page is an FAQ about various different tax scenarios and also has links to the memos the IRS has published on how to handle crypto for tax purposes. The IRS doesn't issue laws so these memos are the closest thing we have to tax "law" and are how the IRS would measure compliance should they audit someone.
Long Term vs Short Term Capital Gains
Gains: The sale price minus the purchase price of an asset (in our case the coin/token you are trading)
The next part we need to discuss before moving into discussions directly about Crypto taxes we are going to talk about the difference in Long Term and Short Term capital gains. The following definitions differentiate the two:
Long Term Capital Gains Tax: Are taxes owed on the gains of selling an asset that has been held for at least 12 months Short Term Capital Gains Tax: Are taxes owed on the gains of selling an asset tat has been held for less tan 12 months
The distinction between these two are very important because they result in drastically different tax rates. Long term capital gains are taxed using the following table for a single filer (meaning not married or with dependents).
|Long Term Capital Gains Tax Rate||Annual Income|
|0%||$0 to $40,000|
|15%||$40,001 to $441,450|
|20%||$441,450 and higher|
Edit: u/ChaosCouncil pointed out that I had a mistake in relation to the sort term gains and how you do cross over into the 15% bracket (or theoretically 20% bracket) based on the amount of long term gains you have.
This means that unless you are making more than $441,450 you ARE NOT paying 20% if you have held your crypto for more than 12 months. If you make less than $40,000 and have held for 12 months you will pay 0% in taxes on your gains up to $40,001 and then would pay the 15% after. (This is your income plus the long term gains) Also important to note is that Long Term Capital Gains will not push your ordinary income into a higher tax bracket.
This brings us to the short term capital gains rates which is what you will be paying if you are actively trading. Short term gains are taxed and treated as normal income. This means that they follow these tax brackets (I took this from nerdwallet):
|Tax Rate||Taxable income bracket||Tax owed|
|10%||$0 to $9,875||10% of taxable income|
|12%||$9,876 to $40,125||$987.50 plus 12% of the amount over $9,875|
|22%||$40,126 to $85,525||$4,617.50 plus 22% of the amount over $40,125|
|24%||$85,526 to $163,300||$14,605.50 plus 24% of the amount over $85,525|
|32%||$163,301 to $207,350||$33,271.50 plus 32% of the amount over $163,300|
|35%||$207,351 to $518,400||$47,367.50 plus 35% of the amount over $207,350|
|37%||$518,401 or more||$156,235 plus 37% of the amount over $518,400|
An important thing to keep in mind is what is shown in the right column of the table and that is as you go up in tax brackets only the amount over the lower tax bracket is taxed in the at the new rate. For example:
Say I make $40k per year and have $2k in short term capital gains. This means that my total income for the year is $42k which would now put me in the 22% tax bracket moving up from the 12%. Only the amount OVER $40,125 would be taxed at 22%, my $40k salary would still be taxed at 12%. My total tax burden would look like: $4,617.50 + ($42000-$40125)*.22 = $5,030 The $4,617.5 comes from calculating the max tax owed in the tax brackets below and adding them up.
Unfortunately, as you can see from the example above short term capital gains DO cause us to move between tax brackets unlike long term Capital Gains
How Crypto Trades are Taxed
Now that we have all that Short Term vs Long Term stuff worked out we can start talking about how crypto trades and transfers are taxed. Let's start with the easy part first and discuss what is NOT taxed. Unfortunately, most activities do result in a taxable event but fortunately moving coins between wallets and exchange accounts are NOT taxable. More importantly transferring does not affect our 12 month holding clock to reach long term capital gains
We need one more definition to talk about how our crypto trades will be taxed and that is basis.
basis: The base value of an asset used for tax and accounting purposes
Most commonly the basis of our crypto coin is going to be the purchase price of the coin but if we are doing crypto to crypto trades then our basis is going to change and this is important to keep track of. Another important thing to remember is that basis is associated with the value of the unit you are selling NOT your initial investment. For example:
if I buy 1 ETH at $100 dollars then it's basis is $100. If I decide to sell .5 eth then the basis is split between the two halves with each half having a basis of $50
The easy use case is simply buying and selling crypto between fiat on an exchange:
If I start with $1,000 on coinbase and use it to buy .1 BTC at $10k. I then have: .1 btc at a basis of $1000 If BTC rises to $30,000 the following week and I decide to sell .05 of the BTC then the taxable income is: Sale Price - Basis = Taxable Income - My basis is $1,000/2 = $500 - My sale price is $30,000*.05 = $1,500 $1,500 - $500 = $1,000 My taxable income from this trade is $1,000
It get's more complicated when we start trading between coins as crypto to crypto trades are taxable event. In order to determine the taxable amount from the trade, the IRS expects us to record what the current fiat value is and calculate our income from that. We will do an example of trading between BTC and ETH:
I have .05 BTC remaining after our previous trade and decide that with the Eth ratio at .03 ETH looks like a better hold than BTC. BTC price is still at $30,000 so our equation looks like this: Current Fiat Value - Basis = Taxable Income - My basis is $1,000/2 = $500 - The Current Fiat Value is $30,000*.05 = $1,500 $1,500 - $500 = $1,000 My taxable income from this trade is $1,000 and I now have 1.666 ETH at a basis of $1,500
Now here is where a lot of people get lost. When we make this trade this resets the basis of the holding so my ETH now has a basis of $1,500. That means that there will only be taxable income if the value of my ETH rises above $1,500. Where this can benefit us is if we are ratio trading. Let's say that the price of BTC has dipped and the ratio of ETH to BTC is now .05 but the price of ETH hasn't changed:
The price of BTC has dipped resulting in a spike of the ETH ratio to .05 but the price of ETH has stayed constant. I use the same equation from above to calculate my taxable income: Current Fiat Value - Basis = Taxable Income - My basis is $1,500 - The Current Fiat Value is $1,500 $1,500 - $1,500 = $1,500 After the trade, I now have 0.0833 BTC at a basis of $1,500
So now I have more BTC than I started with and generated no taxes. Important to note though is that each of these trades DOES reset our clock for the 12 month holding period to qualify for Long Term capital gains.
I had planned on discussing how tings like mining, staking and Earn returns are taxed but this is getting really long so it will go in the next post. So we will end with a quick discussion on losses. Obviously, every trade we make is not going to be a winner so if we sell our crypto or trade into a different coin when the current fiat value is below our basis this results in a loss in other words our
Sale - Basis = Income or Current Fiat Value - Basis = Taxable Income
results in a negative value. Losses directly offset gains meaning our total taxable income for the year is:
Gains - Losses = Total Taxable Income
That's the end of this post but feel free to ask any questions below and I'll go into other taxable events and some of the different accounting methods we can use in the next post