Things to watch out for, when moving coins around

Earlier today, I moved some DASH coins from my Kraken account to my Exodus wallet.

I wanted to track this correctly in Accointing. In particular, I wanted Accointing to handle this move as what it calls an “Internal” transaction, so as not to trigger any capital gains tax event. This way, Accointing knows that it’s the same coin … just in a different place.

I ran into several “gotcha’s”, and there were several steps that were documented in diverse places… Here are some things that seemed essential when doing this.

These steps and details probably apply to some other exchanges, wallets, coins and transactions, but I’ll leave figuring that out as an exercise to the reader.

1) Setting up Accointing to query my Kraken account There are two useful videos explaining this, one more focused on what needs to be done within Kraken, and the other more focused on Accointing. See further Finding and Connecting your API Transactions from Kraken to - YouTube and How to Connect Your Kraken API to - YouTube

2) Exporting my Exodus wallet to Accointing There are two places (that I’ve found so far) with instructions on doing this. This rather short video shows how to configure Accointing to track a single blockchain account that is managed in your Exodus waller: How to Connect Your Exodus Wallet to - YouTube The brief instructions when adding a new Exodus wallet on the website show three ways to do this - by block chain Address (as in the above video), csv file, or manually on a webform or using a spreadsheet template. I preferred exporting my transactions from Exodus in a csv file, but the Accointing instructions for this left out a key step. At least on my Linux desktop Exodus (it might be different on a mobile) I had to first enter Control-Shift-D in the Exodus window, to get the “File Edit Developer Window” menu bar to display along the top of my Exodus window, so that I could then click on “Developer”, and then on “Export All Transactions”, to get Exodus to export the csv file I needed to upload to Accointing.

3) Refresh Accointing so it sees recent Exchange transactions Normally it seems that Accointing only checks the Exchanges (such as Kraken in my case) via the API just once a day. So if you’ve just done a transaction on your Exchange account, and you want to see it in Accointing right away, click on the Refresh option, either for all your API connected exchanges on your main Accointing page, or just for the one Exchange of interest on the Wallets (and Exchanges) page.

4) One Internal transaction, not two transactions to Add and Remove Once I had done the above, then the “fun” began. I had two transactions in Accointing, one to “Remove funds” from my Kraken account, and the other to “Add funds” to my Exodus wallet. I needed a single “Internal” transaction, handling both ends of this transaction, not two separate transactions, in order to avoid triggering a capital gains tax event.

[[ Perhaps not I did not need to do all the following. Post below if you think a step below is unnecessary. Thanks! ]]

5) I edited both transactions in the Wallets → Full Data Set list to have the same TxID transaction ID. This seems to help Accointing recognize that the two separate transactions are two halves of the same Internal transfer.

6) I edited the imported Exodus transaction to have “Classification” of “Add funds”. It had come in as unclassified.

7) I edited the API imported Kraken transaction to “Classification” of “Remove funds”. It too had not been classified.

8) I fixed the date/time on the imported Exodus transaction. My copy of Exodus exports transactions with timestamps in the UCT (GMT) timezone. It seems that when Accointing imports these, it thinks these timestamps are in my local timezone, which happens to be five hours behind UCT for me, as I am in Central US. The end result is that Accointing thinks that my Exodus received that DASH coin transfer almost five hours before I sent those coins from Kraken, and refuses to recognize that it’s seeing two halves of the same “Internal” transfer. Accointing will only bind a pair of transactions into a single Internal transaction if the sending side was 1 minute to 6 hours before the receiving side. If the two timestamps are the same minute, or if they are outside the 6 hour window, or if the receive seems to happen before the send, Accointing figures they are different transactions. (I wonder if someone testing this in Germany, which is 2 hours ahead of UCT, would not trip over this detail for this particular situation, sending a transfer into Exodus?)

Here is the actual timestamp field of this transaction in the csv file exported from Exodus. I suspect that some Accointing server code does not recognize the timezone format.

Tue May 04 2021 15:47:21 GMT-0500 (Central Daylight Time)

Once the above was all done, then as soon as I recalculated my Accointing portfolio, the two transactions, to WIthdraw (Remove funds) from Kraken, and Deposit (Add Funds) to Exodus, collapsed right before my eyes, to a single “Internal” transaction, that showed both the “Send from” Kraken, and the “Receive in” to Exodus sides of the transfer. Both Death and Capital Gains Taxes had been put off for another day.

Let me know below if I missed a step, messed something up, or made something more complicated than it needed to be.

Oh - as an aside - the “Step 2: Identify internals” step of the four step “Review” process has never presented any transaction pairs to me as potential halves of an Internal transaction.

Speculation: That “Step 2apparently would only present pairs of WIthdraw (Remove funds) and Deposit (Add Funds) to the reviewer when:

  • The datetime on the Deposit is one minute to six hours after the Withdraw.
  • Both transactions have the same TxID transaction ID.
  • The amounts transferred (any fees are separate and distinct line items) are identical.
  • The WIthdraw transaction has classification “Remove funds".
  • The Deposit transaction has classification “Add Funds”.

Then, once the above criteria are satisfied, Accointing automatically and almost immediately smashes the two separate transactions into a single transaction with classification “Internal”, which contains the details (quantity, unit, fees, exchange/wallet, transaction ID, datetime, …) for both the Withdraw and Deposit sides of the transaction.

Therefore, it seems to me that that “Step 2” will never show any transaction pairs to consider matching, because the only pairs it would find eligible to display have already been matched and combined into a single “Internal” transaction.

Note: I said “apparently” above. I have only very limited experience using this, and no access to the actual code nor real knowledge of what the code does, or is intended to do.

1 Like

Really detailed post. Thanks. This is helpful and something I was wondering about as well recently. Something to check out.

1 Like

@ThePythonicCow Thank you for the detailed pathway on how to create an internal transfer for your DASH from Kraken to Exodus.
I run into a similar situation when I transfer from BlockFi to KuCoin.
The easiest way I have found to do this is to let the API of Kucoin say that funds were deposited or removed. Then I make a withdrawal/deposit for the same day that the KuCoinAPI recognized the transaction (Just make sure the withdraw is first and within 6 hours of the deposit). Here is an example:

Then I can go into Review > Identify internals and confirm it.

1 Like

Then I can go into Review > Identify internals and confirm it.

Dang - you got that Review > Identify internals to show something. You have magic I don’t have yet .

For me, the Internal replacements for the << deposit, withdraw >> pairs have always showed up automatically, once I get the two transactions to be paired set up just right.