I have been reading more lately about all the US tax liabilities that can come into play in the crypto world and have started worrying about how much I would owe for 2017. I was starting to lose some sleep on the matter and finally decided to organize all of my activity once and for all. I figured I'd write this post for other people who might want to find out what I have learned in this process. I am filing in the US, but some of this might apply to people in other countries as well.
If you have just bought and HODL'd then it will probably be much simpler for you. But if you have done ICOs and any trading and are worried about this stuff, don't worry too much. Its totally possible to get yourself organized with a little bit of work. Background
Bought my first ETH in Feb '17 from Coinbase and since then:
- Have traded probably 50 different tokens on 10 different exchanges
- Have participated in 21 ICOs
- Have received Airdropped tokens
- Have sold some and withdrawn profits to my bank account
The best place to get started is bitcoin.tax Referral Link Normal Link
I signed up for the 1 year plan for $19.95 (they also accept crypto) and believe me its worth every penny. You can use it for free, but are limited to 100 items (I ended up having > 1500). It really does almost everything for you, so you don't have to worry about figuring out the cost basis yourself. The only time USD was involved was buying via coinbase, everything else was handled as a token to token trade.
Microsoft Excel or Google Sheets is a must if you are doing any trading on the non-supported exchanges because you might have to massage the data into the correct format. Etherscan
Unfortunately, for some trades and the ICOs, I had to go directly to Etherscan to track down the data. DeltaBalances
This is a lifesaver for tracking trades made on ED. I wasn't able to get the export feature working, but copy/pasting the table into Excel was fine. Html Table to CSV
If you are having trouble copy/pasting table data this comes in handy. You can just copy the raw table HTML from Chrome Dev Tools and get a nice CSV. Exchanges
I am only going to list the exchanges I use and how I was able to get the data into bitcoin.tax. But regardless of the method, make sure you verify all the data that was imported. The system did a bad import on my Bitfinex data and I had to wipe it and reimport because it was missing a bunch of rows.
All the importing is done on the trading tab of bitcoin.tax. Some exchanges require you to download a .csv file from the exchange website, and some have direct API access. Just follow the tutorials on bitcoin.tax for each exchange. The Easy Ones
Bitcoin.tax supports API data pulls for these exchanges: Bitfinex, Coinbase, GDAX, Kraken
. For these, I still recommend going to the exchanges and downloading a copy of your history for your personal records.
You need to login to the exchange and download trade history and then use bitcoin.tax's import tool for these: Binance, Bittrex, Poloniex The Tough Ones
Trades made on Etherdelta
present a bit of a challenge. There is no direct import into bitcoin.tax so you will have to manually compile a CSV and import it to their system. They give you a template to follow with the required data and it will require a bit of "massaging" to get the ED data to the correct format. For this is it extremely helpful to use DeltaBalances. For each wallet you use you will need to check the trade history and go back a sufficient number of days to cover your trading history. Warning, it might take a long time for this process to finish and it isn't 100% reliable. When I ran it, it needed to download > 200MB worth of data for the 260 days I went back. My suggestion is to run it a few times to validate the results. You will need to run it for each wallet you use to trade on ED. Once you get the results, you can try copy/paste the table into Excel and then format the columns to match. Liqui
was the biggest pain in the ass of them all. If you traded a lot on Liqui, be prepared for some pain because they have no export and only show you the history of 1 pair at a time (and only the last 30 trades!). Liqui has over 250 trading pairs so if you forgot what you traded, you will tediously have to go through each pair to check. I couldn't bear this, so I ended up coding a custom script to query all 250 trading pairs and dump out the data for me, then I had to import that into Excel and format it to match the bitcoin.tax template. Kucoin
wasn't too bad. They don't have an export function, but you can copy paste the tables into Excel and massage the data there.
I did a few trades with OasisDEX
but when I went there it didn't have any of my history, so I had to manually cobble that together from looking at Etherscan. Luckily it was only a few trades or else this would have been very tedious. ICOs
Like I mentioned, I participated in something like 20 ICOs this last year. Unfortunately I have no records of any of them. In bitcoin.tax I handled these as just another trade. In order to track down the ICOs I participated in, I was forced to use Etherscan and go through my whole transaction history looking for them. In order to add the trades manually in bitcoin.tax you need the Date, the # of ETH you spent and the # of tokens you received. It's not super difficult, but just very tedious. One that threw me for a curve ball was RedPulse. This was a NEO ICO, but adding a trade manually doesn't yet support NEO as a currency. The workaround for this is putting it into a CSV and importing it that way. In fact, if I was to do this again, I would have built a CSV for all the ICOs and just imported it that way rather than inputting them one-by-one. Airdrops
I treated airdrops as "Gifts/Tips" under the income tab. I had to find these through Etherscan. Verifying the data
In order to verify that all seemed right and there are no problems, there are two things that I was working toward:
- No unmatched trades -- On the reports tab, you can filter by "unmatched trades". Ideally you won't have any of these. If there are some, you may need to do some more digging to see why
- Closing position report -- On the reports tab, your closing position report should match as closely as possible to your current holdings in Blockfolio.
Overall, although there was some tedious parts, this was a really good exercise. Going through my entire history gave me some great insight on how my strategies played out (ICOs were great / I suck at trading). As far as the taxes themselves, it turned out to be a lot more than I was expecting, but considering the gains I am not too sad. Going into this next year I am going to make some changes. First of all, I will probably stop trading as much. It just wasn't that successful for me and created a lot of work and taxes on top of that. Secondly, I really want to try and stay away from exchanges that don't (or don't plan to) offer history exports. Third, I will probably hold most of my unsold ICOs for at least a year so as not to be liable for short term gains. Lastly, I will keep better records as I go along so I don't have to do so much digging for next tax season.
I hope this can help some of you guys figure this out and I would love to hear any additional tips from those of you who have gone through this.
Edit: A couple other hiccups that I just remembered. Some tokens change their symbol, this can cause some havoc, I had done some trades in MyriadCoin as MYR then it changed to something else and it got all wacky. Updating the old token symbol to the new one seemed to do the trick. Also, to add to the Liqui woes, I had bought some BCAP way back in the day, but it got delisted so there is no way I found through the UI to get that information. The only way I found out I had actually done that trade was that the script I coded iterated through every possible trading pair and only then it was uncovered.
Edit #2: I got a request for the liqui ruby script
Get live charts for Binance Coin in Malaysian Ringgit. Convert Binance Coin (BNB) to Malaysian Ringgit (MYR). From here, you can get an overview of all cryptocurrencies Binance offers, and your current balance (which is likely to be zero at this time). You will find the list of all traded coins on that page. Locate or search, using the search field, for your currency, which you want to deposit and then press the corresponding button named ‘Deposit,’ which is present on the same raw. We added the most popular Currencies and CryptoCurrencies for our Calculator. You can convert Bitcoin to other currencies from the drop down list. Selling 1 Bitcoin you get 62016.90 Malaysian Ringgit at 08. November 2020 06:29 AM (GMT). After you successfully deposit your funds to Binance, you can go back to the Wallet Overview, hover on [Transaction History] to see the details and status of your recent deposits. You can visit the blockchain to check the status and more details of any specific deposit transaction by clicking on the hash in the TxID column. 8. Also, we have added a reminder for the deposit of ERC20 tokens that ... Binance Card explained. Binance is one of the most popular cryptocurrency exchanges in the world thanks to its user-friendly platform, huge selection of cryptocurrencies that are available for trading, and extensive suite of features. Recently, Binance has built out its offering even further by introducing Binance Card, a Visa card that allows users to effectively spend their cryptocurrencies ... Convert Bitcoin (BTC) to Malaysian Ringgit (MYR). Get live charts for Bitcoin in Malaysian Ringgit. Convert Bitcoin (BTC) to Malaysian Ringgit (MYR). 🎉 Our October 2020 Monthly Cryptocurrency Report is here🎉 The rise of Bitcoin, total crypto market cap yearly-high & much more! EN . Language. English Deutsch Español Français Italiano język polski Limba română Magyar nyelv Nederlands ... Now that you know what it takes to be a trader on Binance, let’s dive in to see how you can buy and sell cryptocurrencies on the Binance platform! Step 1: Creating an account on Binance. To get started with Binance, the first step is to get registered with Binance. For this, you have to visit its homepage and click on the Register button.
Want to upgrade your skill set and support the CryptoDad? Check out my Patreon Page: https://www.patreon.com/TheCryptoDad Set up a Binance account: https://w... Register with Binance: https://www.binance.com/?ref=12121686 Welcome to CryptoRobert's complete idiots guide to the Binance Trading platform. Does looking at... Once you get your cryptocurrency into Binance it's a little bit of a process to get it out. We walk through the process of selling your altcoins for Litecoin... Wondering how to buy Tether on Binance? Together we walk through step-by-step how to buy usdt on Binance. I show you how to trade the best stable coin on Bin... IN today's video we take a look at how to Use Binance , specifically, how to deposit and withdraw on the Binance Exchange. I've set up a new Telegram group f... If you're brand new to crypto, you might have just purchased your first Bitcoin or Ethereum, but you probably want to jump into other assets like Ripple, Car... 💥Sign up to Binance and Cut your Fees in Half Here https://www.binance.com/?ref=11093903 MUST WATCH *****UPDATED 2018 VERSION HERE*****... Binance exchange tutorial: how to sell on binance. I sold all my binance coins for bitcoins. Register on binance: https://www.binance.com/register.html?ref=1... Trade on Binance: https://www.binance.com/?ref=10051338 Trade BTC/EUR/GBP on Binance: https://www.binance.je/?ref=35005899 Chat with us on Discord: https://d... [ Sign Up to Binance for Free and Help Support the Channel ] https://www.binance.com/?ref=11093903 #Binance #Tutorial #Bitcoin How to Use Binance! https://ww...