This article will explain how you can avoid spending tokens that are staked when it comes to cost basis calculations.
Let's assume you have originally bought 200 DOT tokens which you are now staking. Later, you trade BTC for DOT and then sell these DOT tokens a few weeks later. Using the FIFO calculation method you will now "spend" the DOT tokens staked when calculating the cost basis for the tokens sold. Because the tokens staked are illiquid and locked, the tokens you actually sold are the ones you received when trading BTC for DOT earlier which also has a different purchase cost than the staked tokens.
Here is a summary of the transactions:
Bought 200 DOT - June 1, 2021
Started staking 200 DOT - June 10, 2021
Traded 0.05 BTC → 50 DOT - July 20, 2021
Traded 50 DOT → 0.07 BTC - August 15, 2021
Unstaked 200 DOT tokens - October 30, 2021
The cost basis for 50 DOT sold on August 15 will now be calculated from the 200 DOT bought on June 1 assuming FIFO is the chosen cost basis method. If we instead want to NOT spend the staked DOT tokens, we will need to add the following transactions:
Traded 200 DOT → 200 sDOT - June 10, 2021 (tag as Swap)
Traded 200 sDOT → 200 DOT - October 30, 2021 (tag as Swap)
Because we cannot add custom ticker symbols (like sDOT) directly, we will need to add these transactions to the Coinpanda generic file:
This is how the final transactions look like on the Transactions page:
By adding the two Swap transactions, the original cost basis of the 200 DOT tokens will be transferred to the "staked" DOT token we named sDOT. This means that when 50 DOT is sold on August 15, the cost basis will be calculated from 50 DOT bought on July 20 instead of from the 200 DOT tokens staked.
In this example, we chose sDOT as the ticker symbol, but you can use any symbol or ticker that you prefer. The only important thing to keep in mind is that it must be a unique ticker symbol so that the cost basis will be tracked correctly.