5 Koinly Errors That Mess Up Your Tax Report (And How We Fix Them)
Koinly is great software. Genuinely. But it's not magic.
The moment you connect five or more exchanges, throw in a couple of DeFi wallets, and add a few years of trading history, things start to break. Not because Koinly is bad — but because crypto data is messy, and no software can fix what it doesn't understand.
Here are the five most common Koinly errors we see at HandyTax, and how we deal with each one.
1. Duplicate transactions from syncing API and CSV at the same time
This is the number one mistake. You connect your Binance API, then also upload a CSV export from the same account. Koinly doesn't always detect the overlap, and suddenly your transaction count doubles.
The result? Inflated gains, because every buy and sell shows up twice.
How we fix it: We audit every data source and remove duplicate imports. We cross-reference transaction IDs, timestamps, and amounts to make sure each transaction appears exactly once.
2. Missing cost basis — the "received for free" problem
When Koinly can't trace where a token came from, it marks it as received for free — meaning a cost basis of zero. When you eventually sell that token, Koinly calculates your gain as if you paid nothing for it.
This usually happens with transfers between your own wallets that Koinly doesn't recognise as internal.
How we fix it: We manually match incoming and outgoing transactions across your wallets, mark them as internal transfers, and restore the correct cost basis. This alone can save thousands in overstated gains.
3. Internal transfer mismatches between wallets
You send ETH from Coinbase to MetaMask. Koinly sees a withdrawal from Coinbase and a deposit into MetaMask, but it doesn't always connect them. Instead, it might treat the withdrawal as a disposal and the deposit as a new acquisition at market price.
How we fix it: We review all cross-wallet movements and merge them into proper internal transfers. This means no phantom gains, no phantom losses, and an accurate portfolio balance.
4. Fiat balance ghosts
Sometimes Koinly shows a GBP or USD balance that doesn't exist. Maybe a deposit was recorded but the corresponding trade wasn't, or a withdrawal got duplicated. The result is a fiat balance that makes no sense.
This doesn't always affect your tax calculation directly, but it's a red flag that something is wrong with the underlying data.
How we fix it: We reconcile your fiat balances against exchange statements, trace every deposit and withdrawal, and clean up the discrepancies until the numbers match reality.
5. DeFi transactions that Koinly can't categorise
Liquidity pool entries, yield farming rewards, token bridges, governance votes that distribute rewards — Koinly often imports these as generic "receive" or "send" transactions with no context.
Left uncategorised, they either create phantom income or get ignored entirely, both of which are wrong.
How we fix it: We manually review every DeFi transaction, categorise it correctly (swap, liquidity add, staking reward, etc.), and ensure the tax treatment matches your jurisdiction's rules.
The bottom line
Koinly gives you a starting point. But if your report shows negative balances, impossible gains, or numbers that just don't look right — it probably is wrong.
We've cleaned up Koinly accounts with over 40,000 transactions across a dozen exchanges. If your report needs fixing, get a quote and we'll tell you exactly what's wrong and what it costs to fix.
Need help with your crypto taxes?
Get a personalised quote — fixed pricing, no hourly billing.
Get Your Quote →