Crypto cost basis, explained
Cost basis decides how much of every sale is profit. FIFO, HIFO and the other lot methods, and why transfers between your own wallets break the math.
Every honest answer to “how much did I actually make” starts in the same place: cost basis, what you paid to acquire the asset, fees included. Sell price minus basis is your gain. It sounds too simple to get wrong, and then you buy the same coin five times at five prices, move it between three wallets, and sell half. Suddenly “what did I pay for the coins I just sold” has several defensible answers, and they produce different profit numbers.
What goes into basis
- The purchase price, obviously, but also the fees paid to acquire: trading fees, and in many treatments the network fee for the buy.
- Assets received as income, like staking rewards or airdrops, generally take their market value at the moment you received them as basis, because many jurisdictions tax that value as income first.
- Coins moved between your own wallets keep their basis. A transfer is not a sale, however dramatic it looks on a block explorer.
Lot methods: FIFO, LIFO, HIFO, average
When you sell part of a stack bought at different prices, something has to decide which coins you sold. FIFO sells the oldest lots first. LIFO sells the newest. HIFO sells the most expensive lots first, which minimizes the reported gain today. Average cost blends every lot into one number. Same trades, same sale, materially different taxable gain. Which methods you are allowed to use depends on where you pay taxes: some countries mandate one method, some allow a choice if you apply it consistently, some pool everything by rule.
Where portfolio math quietly breaks
The classic failure is per-venue accounting. You buy on an exchange, withdraw to a wallet, and later sell from that wallet. Any tool that only sees the wallet thinks the coins appeared from nowhere, with zero basis, and reports the entire sale as profit. The only way to compute basis honestly is to follow the coins across every venue and wallet you use, matching transfers so the purchase on one side connects to the sale on the other.
Basis drives both PnLs
Your realized PnL is sales measured against the basis of the lots sold. Your unrealized PnL is today’s price against the basis of the lots still held. Get basis wrong and both numbers are fiction, which is why a tracker that guesses at it is worse than one that admits what it cannot see.
Reading it in TrueHold
TrueHold computes cost basis across every exchange and wallet you connect, matches your own transfers so coins keep their basis when they move, and shows realized and unrealized PnL from the same numbers. When tax season comes, the same history exports as a CSV your accountant can actually use.
Frequently asked questions
Does moving crypto between my own wallets change the basis?
No. Transfers you make to yourself are not sales, and the coins keep the basis they had. The practical problem is bookkeeping: the tool doing your math has to recognize both sides as yours.
Which lot method should I use?
Whichever your jurisdiction allows, applied consistently. HIFO minimizes today’s reported gain where it is permitted, but permitted is the operative word: ask a professional, not a blog.
What if I no longer have the history for old buys?
On-chain history is reconstructable: an address’s full past is public, and a tracker can rebuild acquisitions and transfers from it. Exchange history is worth exporting today, while the account still exists.
Terms in this article
See your whole portfolio in one view
Read-only by design. Paste a wallet, link an exchange, and watch every chain. Free to start.
