Handle UTXO consolidation and multi-sig wallet transactions (BTC)
S
Satisfactory Jellyfish
There is no good way to represent a multi-input or multi-output transaction in Koinly.
As a best practice I use multi-sig wallets for BTC storage. These are already a challenge because of no support for multi-sig XPUB files - even though most wallet software can import multi-sig just fine. Koinly requires them all the wallet addresses to be manually added, or imported via CSV.
Another best practice is to never reuse wallet addresses. Each transaction goes in a new wallet, and you wind up with dozens of wallets in a single XPUB (each one manually entered for multi-sig). Occasionally you should consolidate them into a single larger UTXO, again at one address. This means creating a many-input to one-output transaction.
The counter example is a one-to-many transaction, which would be most on-chain BTC transactions. You have the original large UTXO, a recipient address getting paid, and a change address to receive the remainder which creates a new UTXO. This is a one-to-two address transaction. Koinly does not handle this properly, usually assuming the payment was a transaction fee and the change address was the recipient.
Even though the transaction ID matches, and all wallet addresses are tracked, Koinly fails to detect what's going on. I have manually entered all my multi transactions individually hoping they could be merged, but they cannot. Now I have seven manual transactions and a bunch of deleted API transactions, to represent the one consolidation, and two more to represent the payment with change address.
S
Satisfactory Jellyfish
I should add that all this represents transfers between my own self-custody wallets. Hence why the proper tracking is important to avoid calculating capital gains on transfers.