
What the Client must do
- get transaction logs from all your exchanges, wallets, etc
- take an inventory of your crypto holdings, coin by coin, location by location, and take screenshots
What I must do
- format the raw data into a uniform format, and put the transaction logs together
- count how many of each crypto the transaction logs show the client holds at the end of the data
- compare the transaction log holdings to the true life holdings
- figure out how to make the transaction logs match real life, by bridging the gaps. Gaps are bridged by badgering the client to look for more data, investigation on the block chain (this is literally clicking through wallet addresses and wondering “does my client own this wallet?”), and as a last resort, inference.
- compute the gains/losses on the dispositions
- provide a tax report such that any trained tax preparer could fold the crypto data into a tax return.
- provide an “ending holdings” report to the client such that they know the cost basis of their ending holdings
My Constraint
- perform the above work in the same method as an IRS auditor, such that any IRS auditor could look at your raw data, look at my working papers, and look at my ending reports, and verify that my work is correct.
- use the same tools that an auditor would use.
TLDR
matching up deposits and withdrawals is a big part of the process. For instance if you have a deposit of 10 bitcoins into Coinbase on January 10, 2017, I should see a withdrawal of 10 bitcoins out of a different exchange or wallet on January 10, 2017. If I don’t see a withdrawal to match the deposit, then that means that either the deposit is not merely a transfer, or I’m missing data. Unmatched Transfers Tell Me When I’m Missing Data. When a client really understands this, my work is 50% easier.
When I see a withdrawal and I don’t see a matching deposit, either i’m missing data OR you didn’t merely transfer the crypto from one place to another. Did you sell it to a friend for cash? Did you send the crypto to someone/somewhere and then get something else in return? Did you invest in a project? Did you post collateral?
I check my work by counting how many bitcoins your transaction logs show you have, and how many you actually have in real life. And ETH, and DASH, and Z-Cash, and XRP, etc etc. Coin by coin, the actual number of tokens. Not their value. This is how I check if I’m missing data, or double counting something, or accidentally booked something as a “buy” when it was really a “sell”. 0 + all your purchases – all your sales – fees paid in crypto = how many crypto tokens you’re holding now. Coin by coin. I talked a client through this, and then asked him to take an inventory of his holdings, so that I could check my work, and he replied “my crypto is worth $500,000”. My client did NOT understand my work.
I once asked a client if he had given me transaction logs from all of his wallets? and he said “Yes.” then i asked “the deposit of 10 ETH into wallet x, where did the 10 ETH come from?” and he answered “oh I sold some DASH and then transferred the ETH.” I was asking what wallet the 10 ETH came from. So I asked “What wallet did the 10 ETH come from?” and he answered “another wallet I used to trade with. But it doesn’t have any crypto left in it, so I didn’t think you needed it.” It didn’t occur to him that I needed the transaction logs from all the wallets from all time.

