Jake bought Bitcoin at $28k in 2024. By November 2025, it hit $65k. His $15,000 investment was worth $35,000. He was up $20,000. He told his friends he made $20k. Then he got the tax bill. It was $8,500. He realized his friends had no idea what he actually made, and he'd forgotten to account for fees along the way. He also couldn't remember his exact cost basis because he'd bought on three different exchanges and one of them went bankrupt. He ended up underpaying taxes and now the IRS is asking questions. This isn't a hypothetical. This is most crypto investors.
The math of crypto profit is simple. The execution is where people break down.
The basic formula is straightforward: proceeds minus cost basis equals gain.
Profit = Sale Proceeds - Total Cost Basis
Total Cost Basis = Initial Purchase Price + All Fees + Gas Costs + Network Fees
Jake's math should have been:
- Bitcoin purchased: 0.536 BTC at $28,000 = $15,008
- Fees paid (1% on three exchanges): $450
- Network withdrawal fee: $25
- Total cost basis: $15,483
- Sale proceeds at $65k: $34,840
- Gain: $19,357
- US taxes (long-term capital gains if held >1 year): ~$2,900 (15% bracket)
- Actual profit after taxes: $16,457
He thought he made $20k. He actually made $16,457. And that's before accounting for the possibility he'd already sold smaller amounts earlier in the year, which would trigger short-term gains taxed as ordinary income (up to 37% federally), not long-term gains.
Here's what most crypto investors get wrong.
First, they don't understand what fees actually cost them. On a $100,000 position that you hold for five years, moving it through three exchanges (entry, exit, maybe a swap), paying trading fees of 0.5% on each, you're looking at $1,500 in fees. If your position gained 100%, your $100k became $200k. The $1,500 in fees reduced your gain from $100k to $98,500. That's a 1.5% drag. Seems small, but it compounds. Add gas fees for swapping on Ethereum (which can be $50-$200 per swap during network congestion), and suddenly fees are eating 2-3% annually.
Most people don't account for this because they think of each trade in isolation. They buy 1 ETH for $2,000, swap it to USDC to take profits, and sell for $2,300, thinking they made $300. They forgot the $50 swap fee and the $30 selling fee. They actually made $220. Multiply that by 30 trades in a year and fees have cost you $2,400 in hidden value.
Second, they confuse realized and unrealized gains. If you buy Bitcoin at $30k and it's worth $60k, you have a $30k unrealized gain. You owe zero taxes. If you sell it, you have a $30k realized gain. You owe taxes (the amount depends on how long you held it and your tax bracket). Many people buy crypto, watch it go up, and feel rich. Then they sell and realize the gain was smaller than they thought, and after taxes, even smaller. This isn't a surprise if you track it carefully, but it surprises most investors because they tracked the price of the asset, not the after-tax profit.
Third, they make math mistakes with multiple purchases and swaps. Say you buy 1 BTC at $30k, then buy another at $40k, then swap the first one for Ethereum. What's your cost basis on the Ethereum? Many people think it's $30k. It actually depends on which Bitcoin you're considered to have sold. Under IRS rules, the default is FIFO (first in, first out), meaning you sold the $30k Bitcoin, so your Ethereum has a $30k basis. But if you track it with specific identification (and you can, with proper documentation), you could claim you sold the $40k Bitcoin, giving your Ethereum a $40k basis. The difference matters when you sell the Ethereum and need to calculate gains.
Most people don't track this at all. They just guess. When the IRS asks, they realize they've been sloppy.
Fourth, they double-count or forget transactions. You buy $10k of Ethereum, then swap it for $12k of USDC. That's a taxable event. You've realized a $2k gain. Then you use the USDC to buy Bitcoin. The cost basis of the Bitcoin is $12k, not $10k. If you forget the swap was a sale and think your Ethereum cost basis rolled directly into the Bitcoin, you'll underestimate your gain when you eventually sell. It seems obvious when I write it here, but with dozens of trades across multiple platforms, this happens constantly.
Why does this matter? Because the IRS expects you to report gains on every transaction. Every swap on Uniswap is a sale of one token and a purchase of another. Every trade on Binance is a taxable event. You can't ignore them and report only the final outcome. The IRS knows crypto exchanges are tracking all this data, and increasingly, they're getting those records. Underpayment now means penalties and interest later, sometimes retroactively applying to transactions years old.
Let's contrast two hypothetical investors. Alice buys Bitcoin with dollar-cost averaging. She puts in $500 monthly for two years, accumulating 0.5 BTC at an average cost of $35k per BTC ($17,500 total). She holds it for three years, then sells when Bitcoin is at $60k. She gets $30,000. Her gain is $12,500. If she's in the long-term capital gains bracket (held >1 year), her federal taxes are roughly $1,875, leaving her with $10,625 profit after taxes (15% bracket). She made 60% return after taxes.
Bob does the same initial purchase but then gets impatient. He sells 0.1 BTC at $40k ($4,000), swaps another 0.1 BTC to Ethereum, then back to Bitcoin, then to stablecoins, then back to Ethereum. Over two years, he makes 15 swaps. Most of his holdings are short-term (held <1 year), so he owes ordinary income taxes (potentially 32-37% bracket). His original cost basis across all the positions is $17,500, and his current holdings are worth $30,000 (same as Alice), but his realized gains from all the trades and sales are $8,000. He owes $2,880 in federal taxes on those gains alone. When he eventually sells everything, he has long-term gains of $4,500 and owes another $675. Total tax bill: $3,555. He made 57% return after taxes, despite starting with the same position and ending with the same value. The difference? The frequency of swaps turned short-term gains into higher tax rates.
This is why tracking matters. Most retail crypto investors beat themselves by trading too much and then making accounting errors.
For the math, you need to track:
| Transaction Type | What You Owe | When You Calculate It |
|---|---|---|
| Buy crypto with fiat | Nothing yet | When you sell |
| Sell crypto for fiat | Capital gains tax | At sale |
| Swap one crypto for another | Capital gains tax | At swap |
| Transfer between wallets | Nothing (no gain/loss) | Never |
| Receive mining/staking rewards | Ordinary income tax | When received |
| Give crypto to charity | No capital gains tax if held >1 year (you get the deduction) | At donation |
Most people don't realize that swaps trigger capital gains. They think of a swap as changing the form of their investment, like moving money between bank accounts. The IRS sees it differently: you sold Asset A and bought Asset B. Report the gain.
Here's the concrete example that will save you money. Say you buy Ethereum at $2,000, watch it go to $4,000, get nervous, swap it for USDC (a stablecoin), then a month later swap back to Ethereum at $3,000. Your math looks like this:
- Buy ETH: $2,000 cost basis
- Swap to USDC at $4,000: realized gain of $2,000 (you owe taxes now, even though you're still in crypto)
- Swap back to ETH at $3,000: you now hold ETH with a $3,000 cost basis
- Sell later at $5,000: realized gain of $2,000
Total realized gains: $4,000 (the first swap for $2,000, the final sale for $2,000)
Many people forget the swap-to-USDC is a taxable sale. They think the only taxable event is when they finally convert to dollars. That's wrong. The IRS sees two taxable events.
Now let's talk about minimizing the damage. You can't avoid capital gains tax if you're actually making gains (you shouldn't want to, in some ways, because it means you made money). But you can be strategic.
For US taxes, long-term capital gains (held >1 year) are taxed at 0%, 15%, or 20%, depending on your income. Short-term gains are taxed as ordinary income (up to 37%). For most people, holding anything longer than a year cuts your tax rate in half. This is pure math. If your position is up 50%, wait one year if possible before selling. The tax savings can be thousands of dollars on a five-figure gain.
There's also the wash sale rule. If you sell a security at a loss and buy it back within 30 days, you can't deduct the loss. The IRS is trying to prevent you from selling losers to harvest tax losses, then immediately buying back the same asset. For stocks, this is clear. For crypto, it's murkier. The IRS has never issued definitive guidance on whether wash sales apply to cryptocurrency. Some argue they don't (crypto isn't a security). Others say they do (it's similar enough). The safest approach: if you're selling a crypto at a loss to harvest the loss, don't buy it back for at least 31 days.
Tracking software exists for this reason. Koinly and CoinTracker will integrate with your exchanges and wallets, automatically categorize transactions, calculate gains, and generate tax reports. They're not perfect (especially with DeFi transactions or large wallets), but they beat doing it by hand. A $200 piece of software can save you thousands on your tax bill by catching swaps you forgot and organizing your cost basis properly.
The biggest takeaway: if you're a buy-and-hold investor who buys Bitcoin, holds it for five years, and sells, the math is simple and you'll probably get it right. If you're a trader making 20+ transactions per year, you need infrastructure. That means tracking software, spreadsheets, or hiring a CPA. The cost is real, but so is the cost of making mistakes.
The formula for actual profit is deceptively simple. The work is keeping track of every component. Jake's mistake wasn't misunderstanding the formula. It was not documenting his purchases, not accounting for fees, and not realizing swaps were taxable events. By the time he realized, the records were fuzzy. He'll owe the IRS money he didn't account for, and he'll do it all again next time unless he changes his system.
Use the Crypto Profit Calculator to model your positions. Plug in your purchase prices, the current values, and the time held. You'll see immediately how the tax treatment changes if you wait a year, or how fees and network costs are eating into your returns. Then set up tracking before your positions get complicated. It takes an hour now. It saves you weeks of headaches if the IRS ever asks.
Try the tool
Crypto Profit Calculator
Put what you read into practice. Free, instant, no sign-up.
Open the Crypto Profit CalculatorTopics