Missing purchase history warning (or missing costs) means that you are selling more than you owned at the time of the disposal (based on transactions imported).
To illustrate it on a simple example:
You bought 1 BTC in 2024 and in 2025 you are selling 1.5 BTC - no other transactions were imported to Koinly. How is it possible to sell more than you ever bought?
Since the acquisition of 0.5 BTC is missing and it's unknown when and for how much it was purchased, Koinly assumed that its cost basis is $0 - that it's a lot that was acquired "for free" - and calculated the capital gain accordingly (as total value of this 0.5 BTC at the time of the disposal):
π¦ What causes this warning?
There can be multiple reasons for this error to happen, all of which can stem from inaccurate data imported:
Missing transaction history for previous years
Gaps in the transaction history - some transactions are missing
Duplicate transactions imported
Some CSV files were imported in the wrong timezone
Missing airdrops, forks, signup bonuses
Double-counted trade fees
Manual transactions were added but were not needed
π§βπ§ How to fix "missing costs" warning
To fix this error, you need to fix the underlying issue - wrong/incomplete data imported. What usually helps is:
Resyncing the wallet
Deleting and adding it again
Or deleting and adding it again using CSV files only
For a more detailed, step-by-step approach, check:
βοΈ You can't set the cost basis manually
Cost basis is calculated automatically based on previous transactions imported - you cannot set it arbitrarily. See How to set the cost basis on a trade
πΆβπ«οΈ How to clear "missing costs" warning
π¨ It's best if you fix this error instead of hiding (clearing) it
If you:
Do not want to fix this error
You accept $0 cost basis on those disposals
Want to hide/remove the "missing purchase history" warning from your transactions page
Want to be able to compare your wallet balances with reality
Then you can clear negative ledger balances that are caused by this incomplete data and at the same time remove the error they cause. To do this, add a manual deposit:
Amount/Currency: exactly the same as what is missing
Time: 1min before the transaction that shows this warning
Worth: manually set to $0
That way, you keep the $0 cost basis but add a manual lot to your transaction history instead of creating negative balances on your ledger. Negative ledger balances make it hard to check your data as there may be a relative zero balance of some asset, but you do hold it in absolute terms, in the gap created by "missing purchase history".
π΅ Example: How negative ledger affects your balances
π΅ Example: How negative ledger affects your balances
In a situation where:
You buy 1 BTC
(balance: 1 BTC)
You sell 1.5 BTC
(balance: -0.5 BTC)
You buy 0.5 BTC
(balance: 0 BTC)
So how much BTC do you hold now? In spite of the ledger balance saying zero, you own 0.5 BTC - this lot just "filled the negative balance" created by the "missing purchase history" warning in the previous transaction.
This absolute balance of 0.5 BTC can be seen on the Tax Optimization page:
If you don't want to fix the incomplete data, then creating a $0-worth deposit would clear the negative balances and show absolute balance of BTC:
Frequently asked questions
Do I need to fix this error?
You probably want to fix it because:
It proves that the data imported to Koinly is inaccurate
It increases your taxable gains, as no costs are deducted on such disposals
You can see the total value of all disposals with "missing purchase history" warning (where $0 cost was assumed) on the Tax Reports page for the year. See how this section looks if you have those errors in We have assumed a cost of zero for some assets
You do not need to fix it because:
Some may be caused by rounding issues and are not worth fixing (low total value)
Assuming $0 cost in such cases, like Koinly does, is the most compliant way of handling data discrepancies like that
Can the Tax Office reject my tax return?
β No, it's unlikely for the Tax Office to reject a tax return where $0 cost was assumed for disposals with no history of prior acquisition.
Koinly uses zero cost basis for coins that do not have a purchase history. This is what tax authorities usually recommend as it means you pay tax on the full amount (maximum possible) when you sell the coins (without deducting any costs).