There are 4 main types of transactions on Koinly (and in the crypto industry - when you think about it).

Deposit

This is when you receive coins into your wallet/exchange/service etc from anywhere. It is basically an increase in your balance. This can also be referred to as a "Receive" transaction.

All of these transactions are examples of a Deposit:

  • You bought coins offline (ex. via paypal) and received them in your wallet.

  • You did some freelance work and received coins as payment.

  • You received an Airdrop or coins from a Hard Fork. 

  • You mined some coins or took part in a mining pool.

  • You had staked coins and are receiving your payout.

  • You lent coins on a DeFi platform like Compound and are receiving interest.

Tax treatment

By default Koinly treats all deposits as investments or purchases at market price (at the time of the transaction). If your deposit has some special tax consideration ex. it is received as Income then you can tag it as such.

Labels / tags

Deposits can have one of these labels:

AIRDROP, FORK, MINING, REWARD, LOAN_INTEREST, OTHER_INCOME, REALIZED_GAIN

To learn about what these labels mean and how they will affect your tax reports refer to this article.

Fees

A deposit in Koinly can not have any fee. If you paid a fee on the deposit (ex. transferred 100 USD from bank but only received 95 USD in wallet) then you should add a separate withdrawal transaction for the 5 USD fee and tag it as a Cost. Alternatively, just add a deposit of 95 USD.

Withdrawal

This is when you send coins out of a wallet/service/exchange. It can also be called a "Send" transaction.

Here are some examples of Withdrawal transactions:

  • Paying for an item on Amazon

  • Buying a Koinly tax plan or a Netflix sub

  • Paying for a massage visit

  • Gifting coins to a friend/relative

  • Donating to a charity

  • Coins someone stole from you i.e. lost coins

  • Costs related to your assets for ex. safekeeping fees, margin interest fees

Tax treatment

By default all withdrawals are treated as payment to a third party (same as selling) and a profit/loss will be calculated for them.

Some special types of withdrawals may not result in any gains/taxes such as a Gift, Donation or Lost coins. You can tag your withdrawal appropriately if that's the case.

Tags / labels

Withdrawals can have one of these labels:

COST, MARGIN_TRADE_FEE, INTEREST_PAYMENT, REALIZED_GAIN, GIFT, LOST, DONATION

To learn about what these labels mean and how they will affect your tax reports refer to this article.

Fees

A withdrawal in Koinly can not have any fee. If you paid a fee then the withdrawn amount should include the fee as well. Ex. if your exchange charges you a 0.10 BTC fee when trying to withdraw 1 BTC then you add a withdrawal of 1.10 BTC.

Trade

A Trade can be any of these transactions:

  • Buying crypto for fiat ex. USD -> BTC

  • Selling crypto for fiat ex. ETH -> USD

  • Exchanging crypto for crypto ex. BTC -> ETH

Tax treatment

A buy is not taxed, a sell is always taxed, an exchange may or may not be taxed depending on the tax rules in a users country.

Most countries treat every crypto to crypto exchange as a sell of one coin and a purchase of another, making this a taxable event. Koinly has a setting "Realize gains on crypto → crypto trades" that allows you to toggle this on/off.

There are some special types of trades that may be exempt from taxes. For ex. when one coin simply changes its symbol to something else, this would be an exchange of the old symbol for the new symbol but since this probably does not result in taxes, you can tag it as a Swap (tax-free trade).

Tags / labels

Trades can have these labels:

SWAP, LIQUIDITY_IN, LIQUIDITY_OUT

Fees

Trades can contain a fee in any currency. If you pay a fee in a cryptocurrency then this fee would also be seen as a disposal and may result in gains.

Transfer

This is a special type of transaction and is actually composed of a Deposit transaction and a Withdrawal transaction. Transfers are created internally by Koinly and can not be imported from csv files or via API.

Let's say you have 2 wallets: Binance and Coinbase.

  • You "send" 1 BTC out of Binance.

  • A few minutes later you receive 1 BTC into Coinbase.

Here you would have 2 separate transactions - a deposit in Coinbase and a withdrawal in Binance.

But Koinly can see that you are just moving coins from one wallet into another so it merges them into a single Transfer transaction.

Most of the time this transaction matching will work well but sometimes Koinly can make mistakes especially if you are moving the same amount into different wallets ex. if you also moved 1 BTC from your Ledger wallet into Trezor at about the same time as the Binance → Coinbase txn then Koinly might merge the Binance withdrawal with the deposit into Trezor by mistake.

We are constantly working on improving our algorithms so this is rare but can happen. If you run into this issue, you will have to delete the affected wrong transactions and manually add transfers into the right wallets.

Read more about the rules on transfer matching.

Tax treatment

Transfers are always tax-free but you may have to pay a network fee to carry out the transfer. This fee is usually subject to taxes so you may see some profit/loss on transfers due to it. This can be toggle on/off via the settings "Realize gains on transfer fees".

Fees

Transfer fees are automatically calculated by Koinly as the difference between the received and the sent amount.

Did this answer your question?