When a wallet transfer looks like a sale
How internal moves between self-custody addresses inflate disposal counts—and how to tag them before lot matching.
Exchange CSVs rarely announce that a withdrawal landed in a wallet you still control. The row simply shows coins leaving. If you classify that row as a disposal, your lot register invents a sale that never happened, and your accountant inherits a phantom gain.
A practical tag
Before matching lots, walk every withdrawal and deposit pair across your own addresses. When amounts and timestamps align within a reasonable window, mark both sides as a transfer in the organizer. Leave a note with the destination address suffix so the packet explains the skip.
When alignment fails
Sometimes fees or partial arrivals break a clean match. Record the uncertainty rather than forcing a disposal. The open-question list in the handoff packet exists for these lines. Accountants in Hong Kong routinely prefer a flagged transfer over a reconstructed sale with no invoice.
Session tip
In our export review, transfer tagging is the first pass. Classification goes faster when the disposal list is already honest.