When calculating capital gains and losses for cryptocurrencies, the cost basis tracking method and the chosen inventory method significantly influence the calculated gains and losses in CTC. In this article, we’ll explore the two cost basis tracking options in CTC: Universal and By Wallet and Exchange.
You can find these options on your Settings > Tax.
You can also find your current selected Cost Basis Tracking Method in the Reports page:
We'll use the data set below to show the differences between Universal and By Wallet and Exchange under the First In First Out inventory method.
Date | Transaction | Account | Price per ETH | Value |
Jan 1, 2020 | Buy 2 ETH | Coinbase | $4,000 | $8,000 |
Feb 1, 2021 | Transfer 0.5 ETH | Coinbase to Binance | $4,000 | $2,000 |
March 1, 2022 | Buy 1.5 ETH | Binance | $5,000 | $7,500 |
April 1, 2023 | Sell 2 ETH | Binance | $6,000 | $12,000 |
Universal
The cost basis for your assets is tracked across all wallets and exchanges together. Every transaction is recorded, but your assets are combined into one overall pool (universal pool), regardless of where they are held. When you sell or dispose of an asset, CTC calculates the cost basis from this universal pool.
The transactions will look similar to the below:
Capital Gains/Losses Calculation (First In First Out Method):
Cost Basis of 2 ETH = $8,000 (from the initial purchase in Coinbase)
Proceeds from sale = $12,000
Capital Gain = $12,000 - $8,000 = $4,000
In this example, the cost basis is the 2 ETH purchased in Coinbase, even though the sale happened in Binance. This is because the cost basis is tracked universally.
By Wallet and Exchange
The cost basis is tracked separately for each wallet and exchange. Each transaction is individually recorded, and your assets are kept in distinct pools. When you sell or dispose of an asset, CTC uses the cost basis from the specific wallet or exchange pool where the asset is held.
The transactions will look similar to the below:
Capital Gains/Losses Calculation (First In First Out Method):
Cost Basis of 2 ETH = $9,500
$2,000 from 0.5 ETH transferred to Binance
$7,500 from 1.5 ETH purchase in Binance
Proceeds from sale = $12,000
Capital Gain = $12,000 - $9,500 = $2,500
In this example, we used two cost bases: $2,000 from the 0.5 ETH initially purchased in Coinbase and later transferred to Binance, plus the $7,500 from the 1.5 ETH purchase in Binance. Since we are using By Wallet and Exchange, the 2 ETH purchased in Coinbase were not used as cost bases even though we use the First In First Out inventory method.
Important: If using Cost Basis Tracking By Wallet and Exchange, the 'send' and 'receive' transactions MUST group into a 'transfer'.
What happens if my send and receive transactions aren't grouped as a transfer when using By Wallet and Exchange?
The cost basis will not be transferred to the receiving account, which can result in missing purchase history and zero-cost buy.
Example: Using the same data set as above, but only accounting for the 'receive' (missing 'send')
You will have a zero-cost buy in the calculation because the cost basis of the 0.5 ETH was not yet transferred from Coinbase to Binance. This results in an incorrect gain.
The same issue will occur if the 'transfer' transaction (no 'send' and 'receive') is missing.
To resolve this, please ensure that you imported all your wallets and exchanges and that your 'send and receive' transactions are correctly categorized and grouped into a 'transfer'. You can read more about Send, Receive, and Transfer here.