Skip to main content
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 as a self-transfer.

Example of two transactions paired as a Self-Transfer:

In this example, LCX was sent out of a Metamask wallet as the Outgoing portion and the LCX was received in Coinbase as the Incoming portion of the Self-Transfer. The first screenshot shows how it looks in the Legacy UI and the second shows how it looks in the New UI.

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:

  • Insufficient Balances

  • Increase in tax liability

  • Overstated Sales

  • Incorrect Holdings

Step-by-Step Instructions to Mark Self-Transfer Transactions in the Legacy UI:

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 transactions listed, 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 click Update and the pairs will update as Self-Transfers in your transaction list.


  • If either the Incoming or Outgoing side of the transaction is showing a 0 USD value, then it will not be possible to mark them as a Self-Transfer. It is important to first add the USD value and then to pair them as a Self-Transfer. Please see our Missing Price article for more information.

  • 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?