Background / my transaction history
Again, and again questions come up as to how one can best track cryptos for the purpose of tax reporting. With this post I try to give one possible answer.
In 2017 I could not look away from the legendary bullrun and started to experiment with cryptos. Until 2020 I had experimented with about a dozen tokens on again about a dozen different exchanges.
I had documented the current status of my portfolio in a simple Excel sheet, so I always knew if I was on absolute terms in the plus or minus calculated in Euro. In my past I also experimented with master nodes of clones of clones of Dash, PoS I found interesting early on. I completely deleted old empty wallets from my Exceltracking. In total I had only a small fraction of my actual transactions in my very simple Excelsheet.
I also have a trading history on Cryptopia and failed to export the transaction history before the Exchange went offline due to the hack.
All in all, a huge chaos, every year I had more and more doubts that I could ever reconstruct my crypto history cleanly. I assumed I would just have to start from scratch and accept the past.
When I decided to run a stakepool for Cardano under the ticker STR8 at the end of 2019, I also wanted to professionalize myself in this respect. I knew that there were various crypto tax tools, but I had never dealt with them before. Now I wanted to take the time to seriously look into this.
I actually found what I was looking for and was able to reconstruct my crypto-history completely within about 80 hours, so that for the first time in my 2019 tax return I was able to enclose a crypto-export from a tax tool that my tax office found to be good and accepted.
There are a number of crypto tax tools, Cryptotax and Cointracking are the currently most used tools. I have looked at both. I noticed too little user support with both of them, so I didn’t see any chance to reach my goal with my chaotic transaction history. So, I looked further and learned about Accointing. Here are several UX people in the core team! The user guidance of Accointing has convinced me as well as the fact that the tool gives me all the time in the world to try to reconstruct my history for free and only when I am finished and want to generate the first tax reports, the tool asks for money. I had no risk, if I didn’t like the tool after all I could export my complete history from Accointing as a well readable CSV and continue work with another tool. I liked it very much that I had no vendor lock-in.
Accointing also works together with Winheller’s lawyers and tax consultants. When I give tax reports from Accointing to my tax office, I have, in my opinion, obtained sufficient crypto tax consulting advice, created transparency for the tax office and allowed the freedom to dissent my Accointing report. I do not have to deal with complex hodling rules and the like, the tax tool does all of this for me.
The brilliant thing about Accointing is the user guidance.
The first step is the data import: wallets and exchanges.
Here I had to dig deep into my memory which wallets I had in the past. Especially with local full nodes, which I haven’t used for a long time.
Fortunately, I had to all my experiments even if the wallets were drained by now and I still had all old wallet files in a backup somewhere. I could synchronize the blockchains again to see old transactions if the blockchain still existed.
Sometimes the import of a single address was enough, if only this address was used. When I worked with more than one address of a wallet, I had to transfer the history from the wallet to a CSV manually. Alternatively, the xPub-Key of the wallet can be used, but I never did this for security reasons. A look into the different explorers helped me to find my old wallets and addresses.
Finding all used exchanges was much easier, because there is email documentation and I didn’t delete any of the account data.
For the big exchanges there are API connections, for the small ones CSV files are used for import. Many exchange APIs are faulty though, i.e. even with large exchanges it is worthwhile to get the complete transaction history via CSV to compare it with the data retrieved via API. For example, transaction fees are often missing in the API, or renamed coins are only shown with the new name, even if there was a migration in between (e.g. SAI -> DAI). Transactions of some shitcoins are often completely missing in the API, if they are delisted in the meantime.
As with wallets, CSV files according to the Accointing Template for manual reconstruction were often the best approach here.
Now the Accointing “review process” can start, this is divided into four logical steps, which make absolute sense in the given order.
Step 1: Unknown currencies
With shitcoins, Accointing often cannot identify the token names, so this step allows manual mapping.
Currently, Accointing uses Coincap as its pricing provider, i.e. only coins that CoinCap knows can be selected here. Accointing is currently switching to CoinMarketCap. With CMC there should soon be much less problems to correctly map the tokens that you have accumulated over time. Accointing is also working on a solution that allows users to manually create tokens and store the pricing information for the relevant transactions manually.
Except for two coins, I have been able to correctly assign all tokens.
Step 2: Identify internals
Internal transactions are transactions between own wallets and own exchange accounts. These transactions are not taxable events. If token, volume and rough time window ±6 hours fit, Accointing automatically suggests a match. Here it is worth taking a close look! Do the timestamps match? Are incoming or outgoing transactions missing for the match?
Step 3: Classify transfers
Depending on the classification, the tax consequences are different. Is this transaction internal? Was this an Airdrop, Staking or Masternode Reward, a payment for a service/fee?
Step 4: Missing funds
In the last step, Accointing will sound an alarm if the balance plausibility check fails somewhere despite steps 1-3. E.g. 100 ADA were sent from a wallet, but at this time there were only 50 ADA on the wallet per transaction history, so 50 ADA are missing. If the missing funds are very small, this is often due to missing transaction fees or rounding errors or the like in the exports. For very old trades, the fee data is often incomplete in detail. In this case Accointing offers to fix these errors automatically, but this should be used as the absolute exception and was the very last step for me.
Through this step I was made aware of gaps, which I could close by going through steps 1, 2 and 3 again. Iteratively, I worked my way back and forward, explaining one missing fund after the other. In this back and forth, I spent the most time in reconstructing my transaction history.
It is very helpful to have a look at the complete sequential data set log of Accointing, which can be exported completely as CSV at any time in case of significant interim results. When I took a look at critical times in the log with obvious gaps, it was helping me remember. E.g. I was able to reconstruct all incoming transactions and trades on Cryptopia with a very high confidence via withdrawal emails from Cryptopia.
In the end I jumped back to 1, 2 or 3 and then back to 4 until I got the green message: "Your data set is great!
Now it was done, the data is plausible in itself, now I could finally start with the tax reporting and bought the plan that suits me.
Currently, the plan depends on the sum of transactions. Accointing plans to change the pricing model, so that for annual payments in the future only the transactions in the tax year are relevant and not all transactions over the total history, otherwise sooner or later everyone ends up in the most expensive plan.
Cardano Staking Rewards
Unfortunately, Cardano Staking Rewards cannot yet be imported/integrated into Accointing in the same way, as these rewards appear in the wallet out of “nowhere” without an accompanying transaction.
Here I can highly recommend the reward tracking from Pooltool.io, which calculates the rewards almost perfectly. In more complex cases there are small issues with deviations around 1 ADA per epoch, I am still debugging this with Mike.
Mike may offer a CSV export in the future, I already sent him the template from Accointing. He is also thinking about an API, which could be integrated into Accointing like an exchange in the future.
Lessons learned and conclusion
- Use UTC as times for all CVS imports
- Create regular backups of the full transaction history of all Exchanges you still use
- If in Accointing a transaction has already been automatically or manually (incorrectly) classified before, this transaction can no longer provide an internal transaction match partner. These transactions are most easily found in the sequential full data set history. In this case, the classification must first be removed before the internal transaction can be recognized as such.
- Step 4 AutoFix is only useful for very small amounts, for more than cent amounts there is an error somewhere before in step 1 to 3 or something is missing
- If you have questions, you can access the excellent support in the chat in Accointing itself or in their Telegram group. I always had competent help with my questions and was able to eliminate a number of bugs with their help. Of course, you can also ask questions in this thread and I will try to answer
- There is no point in trying to reproduce the performance of tools like Accointing in a separate Excel. I had a total of over 1500 transactions. From 250 transactions upwards, I strongly recommend a tool like Accointing. The subscription price is in my opinion reasonable if you consider the time savings.
In conclusion, Accointing is in my opinion a great tool for the purpose, I do not want to work without anymore. Tracking with well thought out plausibility process, help with plausibility problem solving, price tracking, tax report generation, hodling display (> or < 1 year), etc.
If I could arouse your interest in the tool and you want to try it, I would be happy if you followed my Accointing.com Referal link.
Good luck / have fun experimenting!