Koinly imports NFTs (ERC-721 and ERC-1155) automatically for most EVM-based blockchains such as ETH, BSC, FTM, AVAX, Poly, Cronos etc.
We are still working on NFT support for other chains, such as SOL, WAX, XTZ etc
To add your unsupported NFTs to Koinly, please see How to manually add NFT trades
How the import currently works
Koinly will import a deposit of the NFT whenever you are purchasing, minting, or receiving an NFT.
Similarly, Koinly will import a withdrawal whenever you are selling or sending an NFT away. All NFTs will currently be imported without any market value.
This is how the NFT transactions look:
How to fix your NFT transactions
If you do not want to include the NFTs in your account's reports then you can simply ignore these NFT transactions. This is only recommended if you are calculating and filing your NFT gains separately as NFTs are taxable in most countries.
Fixing the NFT transactions is usually quite simple.
To fix an NFT purchase, you just need to locate the withdrawal of the spent coins in your wallet and merge it with the NFT deposit. These transactions will usually have the same timestamp and transaction hash so they are easy to identify.
Merging the transaction will create a single trade and Koinly will then be able to calculate the cost-basis of the NFT.
If you have a deposit of an NFT that has no corresponding withdrawal to merge with, then you can adjust the cost-basis manually. You can do this by editing the deposit and setting the 'worth' of the transaction.
To fix an NFT sale, you will need to find the deposit of the received coins and merge it with the withdrawn NFT. Koinly will then merge the transactions into a trade and calculate the proceeds and gains for the sale.
If you have a withdrawal of an NFT that doesn't have a matching deposit to merge with, then you can set the proceeds of this disposal by editing the worth of the transaction.
See this article on how to merge transactions.
This is how the NFT trades look after they have been merged:
What if I already added some NFTs manually?
You can choose whether you want to replace all of the manual NFT transactions or if you want to keep these manual transactions and only sync newer NFT transactions automatically.
If you want to replace the manual ones then you would need to permanently delete all of the manual transactions that were added in the past. You would then need to resync your wallet from the beginning. Make sure to remove any starting sync date in the API settings of your wallet first. You can do this by clicking on the 'Auto sync enabled' banner from your wallet overview page
What if I received multiple NFTs in one transaction?
If you bought multiple NFTs at the same time, then you can merge up to 8 with one withdrawal. However, for anything above 8 NFT’s, you will need to assign the value of each NFT instead.
To do this, first, you need to figure out the cost of each NFT.
If, for example, you spent $1000 worth of ETH to purchase 10 NFTs then each NFT would have a cost-basis of $100. Once you have calculated the cost-basis of each NFT, you can add it manually by editing the NFT deposit and setting the 'worth' to be equal to the calculated cost-basis.
The same method can be used if you sell multiple NFTs at the same time. Each NFT withdrawal would then need to be edited to reflect the proceeds.