Errors and warnings

Why does CoinTracking set cost basis to zero?

Last reviewed: August 15, 2026
CoinTracking sets cost basis to zero when no purchase price is known at the outflow. Often because the purchase was booked as a deposit, the price is missing, or the lot was invented by a negative balance. Sale proceeds then become the entire gain. That is not a display bug — the cost basis is really missing.
The facts in brief
CauseNo purchase price for the sold lot
CommonA deposit was booked instead of a buy
FixSet the source and the price at the inflow date

A deposit is not a purchase

Many people import exchange withdrawals as deposits. The coin then exists in inventory but has no price. The later sale has no cost basis. The correct movement is a transfer from the previous purchase venue or the original trade.

Missing prices and unknown tokens

Delisted or very old tokens have no price in any standard source. Other tools flag that and still calculate with zero. In chain.report CleanUp lists every such row and lets you add the historical price.

How you set cost basis correctly

1) Find the origin of the lot (trade, reward, airdrop). 2) Set the matching type instead of leaving everything as a deposit. 3) Enter the price at the inflow date. 4) Only then generate the report.

Frequently asked questions

Can I use today’s price as cost basis?

No. The value at the inflow date matters. Today’s price distorts both the gain and the holding period.

Is an airdrop with cost basis zero an error?

Only if the token had a market. Then an inflow value belongs there. Dust and scam stay worthless — but labelled as such.

Why is the gain so high after a long hold?

Because the old lot slipped into the sale without a price. Holding time alone does not save cost basis if the date or the price is missing.

Read next

This guide structures the data issues and common German administrative practice. It is not tax advice. The assessment in your case stays with you and your tax advisor.

Restore cost basis instead of accepting the gain

CleanUp shows every movement without a price. Set the historical cost basis before CoinTracking logic turns the whole sale into gain.

Start for free