Two weeks ago I’ve finally sent in my tax documents, giving the tax authorities their requested overview of 10 years of mostly misguided crypto trading history. In the two months since the initial release of Raccoin I’ve made many necessary improvements and fixes. Today I’m sharing these improvements with you!

More Convenient Interface

Raccoin will now automatically restore the previously open portfolio. To close it or switch to a different portfolio, simply click the new “Close” or “Load” buttons. To export all available reports at once, you can now click the new “Export All” button.

A few common buttons now have icons instead or in addition to their text. Adding a new wallet can now be triggered by pressing Enter in the name field.

New Reports Summary

The long-term and short-term capital losses are now displayed separately on the “Reports” page. This is relevant in countries where only short-term losses can be subtracted from short-term gains (like Germany).

Transaction Filters and Navigation

To make it easier to see the capital gain warnings when you have a lot of transactions, a new filter button was added to show only those transactions that triggered warnings (for example when there was not enough balance, or the cost base is unknown). A text input was also added, which currently allows you to filter transactions by their description or hash.

New Filters

It was already possible to filter transactions by currency by clicking the currency on the Portfolio page. Since only those currencies you are currently holding show up there, it is now also possible to click the currencies on the Reports page.

Finally, to aid with understanding capital gain events, the “Bought” and “Sold” columns on the Reports page are now clickable to jump to the relevant transaction.

New Transaction Types and Processing Enhancements

Transaction Types

Raccoin now supports “lost”, “stolen” and “burn” transactions. These are currently all treated as a trade with the sale price being zero, though note that this might not be correct in your tax region.

There is now also support for a “swap” transaction. This can be used to swap one currency for another without triggering a capital gain event. It can be used when a currency was renamed, wrapped / unwrapped, redenominated, etc. The new currency inherits the cost base and purchase date of the original one. It is used for 1INCH / st1INCH swaps when importing an Ethereum wallet.

Transaction Processing

Trades done via intermediate currencies can now be merged when the amount matches up exactly and they happen within 5 minutes of each other. For example when trading BCH to BTC and then BTC to XLM, it is treated as a BCH to XLM trade. This is because such a trade is often only done for technical reasons and it can be useful to not consider it a BTC disposal event. It also helps avoid missing fiat values for intermediate assets used in Stellar blockchain’s path payments.

Merging of partial trades was improved by also sorting transactions by fee currency, which can vary for a single trade (observed on Binance).

Trade fees are now taken into account for calculating the cost base, when the outgoing currency matches the fee currency. In other cases, trade fees now count towards the short term cost (I’m not entirely sure if this is correct).

The handling of fees on transactions that are ignored because of their currency was fixed, in the case where the fee currency is not ignored.

The Bitcoin price history shipping with the app was updated.

New CSV Formats and Other Import Improvements

Support was added for importing CSV files exported from the (bankrupt) Liquid and FTX exchanges. It is also now possible to import transactions from Trezor Suite’s JSON export, in addition to the CSV format (though not yet through the UI).

Raccoin now supports more variations of the Poloniex CSV export, and the accuracy was improved (fee amounts in the CSV export needed to be cut to 8 decimal places). Also, BCH withdrawals in Bittrex CSV files now get assigned a 0.001 BCH fee. ETH deposits to Bittrex can now get merged as transfers. The Binance CSV import now understands “Fiat Withdraw” in addition to “Fiat Withdrawal”.

The AQUA, 1INCH and FTT currencies are now recognized. Block explorer links were added for Dash, Monero and Ripple transactions.

The Stellar account import was improved to recognize USDC and AQUA assets and to mark small amounts of incoming XLM as spam.

Bitcoin, Ethereum and Stellar Sync Improvements

The main improvement for synchronizing wallets is that it is now asynchroneous, no longer blocking the UI. In addition, an issue causing the application to lock up indefinitely during syncing was fixed. There is however still room for improvement. UI feedback during sync is missing and it is still not possible to add wallets through the UI.

Ethereum address import now recognizes token trades and the fee calculation was fixed.

The Bitcoin x/y/zpub import was improved to continue scanning for more addresses (now skipping up to 10 rather than up to 3 unused addresses), in order to not miss some transactions.

Enhanced Exports

The new summary displayed on the “Reports” page is now also present in the “Report Summary” CSV export.

An additional CSV file is now exported when using the “Export All” action, with the yearly data relevant for tax reporting in Germany.

Misc UI Improvements

A button was added to ignore a currency to the Portfolio page. To remove an ignored currency the portfolio file still needs to be edited manually.

UI accessibility is disabled for now, due to performance issues.

Fixed switching to “Portfolio” page each time a change is made.

Fixed timestamps to use local timezone in UI and CSV export, rather than UTC and Europe/Berlin respectively.

Updated to Slint 1.3.2. This changed the scrollbars to overlay style and the margins have been adjusted accordingly.

A Look Ahead

With my tax reporting needs being met for now, development of Raccoin is expected to slow down. I am still planning to add a few more features, most importantly the UI to add wallets and dynamic downloading of price history, but I am not sure when I will get to them.

I do however intend to actively maintain this software, respond to questions and review contributions. If it looks like Raccoin would suit your needs, but you’re running into an issue with it, feel free to open an issue!