Mark Self-Transfers

I sent coins from one of my wallets/exchanges to another, how can I show it as non-taxable in ZenLedger?

Morgan avatar
Written by Morgan
Updated over a week ago

What is a Self-Transfer?

A Self-Transfer occurs when you send your cryptocurrency from one of your wallets or exchanges to another, such as transferring funds from your Coinbase account to your Binance account. Self-Transfers are non-taxable events because no sale or trade is taking place.

When you import your transactions from multiple sources, ZenLedger usually matches up the two sides of a self-transfer. It will identify a self-transfer based on the amount and time of the two transactions. The USD values need to be within a certain amount of each other and same with the time of the two transactions in order for the software to pair them to match as a self-transfer.

Example of two transactions paired as a Self-Transfer:

In this example, USDT was sent out of Kucoin and is labeled as Self-Transfer(Outgoing) and the USDT was received in Coinbase Pro and is labeled as Self-Transfer(Incoming).

It is very important that Self-Transfers are correctly paired with each other. When the sides are not paired, it could cause a few errors such as:

  • Sell Without Buy

  • Increase in tax liability

  • Overstated Sales

  • Incorrect Holdings

Step-by-Step Instructions to Mark Self-Transfer Transactions

Step 1: On the transactions page, make sure both sides of the pair are marked as Incoming or Outgoing, whichever is appropriate.

Step 2: Select the green drop-down arrow symbol to the far right of one of the transactions. Select Mark as Self-Transfer.

Step 3: In the pop-up window Possible Outgoing section, select the grey bubble to the left to create the match if the correct matching transaction is there.

Step 4: If there are no Possible Outgoing suggestions, you can choose to Create a Manual (Matching Transaction Not Found), or you can import the missing source from which the matching transaction should come from (we recommend this option!). Please see notes below.

Step 5: After selecting the matching Self Transfer pair and click Update, the pairs will update as Self-Transfers in your transaction list.


  • If no matching transaction shows up for your Self-Transfer, we caution against selecting the option to create a manual transaction, as this essentially creates a transaction out of thin air and doesn't accurately solve the problem of your missing transaction pair. It will likely lead to incorrect tax calculations and incorrect holdings.

  • Our recommendation is to investigate which import source the missing pair should have come from and then make sure that source is imported, as it's likely that it's not. You can also add the missing transaction manually.

  • It is extremely important to make sure your Self-Transfers are paired up correctly. If Outgoing transactions are left unpaired, they will be treated as Sells and potentially subject to capital gains and reported on your 8949. If Incoming transactions are left unpaired, they will be taxed as taxable income.

  • A transaction pair that has a timestamp of the Incoming transaction after the Outgoing transaction may not be automatically matched by the software as a Self-Transfer. You may need to slightly adjust the timestamps so the Outgoing transactions is slightly earlier than the Incoming transaction.

    • Example: You have 1 BTC outgoing from Coinbase at 8:30 am UTC but your wallet shows incoming 7 hours earlier at 1:30 am in your timezone - this would not match as a self-transfer and would need to have the timestamp edited to make sure the incoming is after the outgoing.

Video Walk-through:

Did this answer your question?