A trader moved his crypto from one exchange to another, sold part of it, and suddenly realised he had no idea what his actual profit was anymore.
Did the cost price reset when the coins reached the second exchange? Does the withdrawal fee count as a loss? Which purchase price applies when the same token was bought at three different rates across multiple days?
This is where many Indian crypto traders get stuck. The trades themselves are easy. The confusion begins when assets move between platforms, and the original acquisition history starts to disappear from view.
The Rule That Settles This
Moving crypto between two exchange accounts that you own is not a taxable event; it is an internal transfer. No asset was sold, no profit was realised, and nothing changed hands in any meaningful sense. The Indian tax framework under Section 115BBH taxes the transfer of a VDA, and a transfer in the legal sense requires a disposal to a different owner. Here, moving coins from your own Exchange 1 wallet to your own Exchange 2 wallet does not qualify.
In this case, the withdrawal on 04 June created no tax. The deposit on Exchange 2 on 04 June created no tax either.
What the internal transfer does is carry the original acquisition cost. The cost basis does not reset when coins move between your own accounts. The coins arrive at Exchange 2 at the same purchase price as on Exchange 1.
Working Out the Cost of Acquisition
He bought 10 KUJ across three transactions on Exchange 1.
Date | Quantity bought | Price per unit | Total cost |
01-Jun | 3 KUJ | ₹100 | ₹300 |
02-Jun | 4 KUJ | ₹80 | ₹320 |
03-Jun | 3 KUJ | ₹120 | ₹360 |
Total | 10 KUJ | Average: ₹98 | ₹980
|
Total spent: ₹980 for 10 KUJ. Average cost per unit: ₹98.
Now the fee. He sent 10 KUJ, and only 8 arrived because 2 KUJ were taken as the withdrawal fee. Two units were spent to move the remaining eight. This means the ₹980 he paid for 10 KUJ now needs to cover the 8 KUJ that arrived, not 10.
Revised cost per unit after fee: ₹980 ÷ 8 = ₹122.50 per KUJ
This is the actual acquisition cost for the 8 KUJ sitting on Exchange 2. Every rupee he originally paid is now spread across fewer coins because two of them were consumed as a transfer fee.
Calculating the Tax on the Sale
On 05 June, he sells 6 KUJ at ₹200 each.
Component | Calculation | Amount |
Sale proceeds | 6 KUJ × ₹200 | ₹1,200 |
Cost of acquisition | 6 KUJ × ₹122.50 | ₹735 |
Taxable gain |
| ₹465 |
Tax at 30% (Section 115BBH) | 30% of ₹465 | ₹139.50 |
4% health and education cess | 4% of ₹139.50 | ₹5.58 |
Total tax |
| ₹145.08
|
He still has 2 KUJ on Exchange 2 that he has not sold. Their cost of acquisition is ₹122.50 each, and tax will apply only when he eventually sells them.
What Most People Get Wrong Here
- Resetting the cost basis after an internal transfer: The most common mistake is treating the coins as “new” when they arrive on Exchange 2 and using the market price on the day of arrival as the cost basis. That is incorrect. The acquisition cost follows the coins from wherever they were originally bought.
- Forgetting about the fee: The 2 KUJ lost as a transfer fee are not free. They represented real money paid to acquire the original 10 KUJ. When those 2 KUJ disappear as a fee, the cost of the remaining 8 KUJ goes up because the same total spend is now spread over fewer units. Ignoring the fee means underestimating the cost basis and overstating the taxable gain.
There is also a third question some traders ask: Is the 2 KUJ fee itself a taxable disposal? The answer is yes, technically, because 2 KUJ were transferred out of the wallet, which is a disposal of a VDA. The gain on that disposal is the market value of 2 KUJ on 04 June minus their acquisition cost. On small fees, this produces a tiny taxable amount that is easy to miss but should be included in Schedule VDA for completeness.
Many Trades, Multiple Exchanges
KoinX tracks buys, transfers, fees, and sales in one CA-ready transaction history.
While the example above has clean numbers and a short timeline, most traders do not have it. They have hundreds of buys across multiple exchanges over several years, fees taken in different coins at different prices, coins sent and received multiple times before the final sale. Every one of those movements affects the cost basis calculation.
Tracking this manually is possible for a small number of transactions. For more than a dozen transactions across multiple platforms, the risk of errors becomes significant. An incorrect cost basis means either overpaying tax (if you understate the acquisition cost) or underpaying it and receiving a notice later (if you overstate it).
The correct output for this specific case is one clean Schedule VDA line: 6 KUJ sold at ₹200; acquisition cost ₹122.50; taxable gain ₹465. That figure requires knowledge of the original purchase prices across three separate buy dates, the weighted-average cost after the fee adjustment, and the correct carry-through of that cost from Exchange 1 to Exchange 2. On three transactions over four days, it is workable by hand. On 300 transactions across two years and three exchanges, it is not.
This is where a crypto tax tool becomes necessary. KoinX imports the full transaction history from both exchanges, identifies the internal transfer between them as a non-taxable move rather than a disposal, carries the original acquisition cost from the buy transactions through to the eventual sale, and automatically adjusts for the withdrawal fee. The Schedule VDA output is correct before the trader or their CA opens the ITR form, without manual price lookups, spreadsheets, or the risk of misidentifying the transfer as taxable. Sign up with KoinX, generate an accurate, ITD compliant crypto tax report.