Skip to content

Commit

Permalink
Website: Updated for Raccoin 0.2 release
Browse files Browse the repository at this point in the history
  • Loading branch information
bjorn committed Jan 4, 2024
1 parent 0166b1f commit 508fa1b
Show file tree
Hide file tree
Showing 11 changed files with 215 additions and 77 deletions.
30 changes: 15 additions & 15 deletions docs/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (7.1.1)
activesupport (7.1.2)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
Expand All @@ -11,10 +11,10 @@ GEM
minitest (>= 5.1)
mutex_m
tzinfo (~> 2.0)
addressable (2.8.5)
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
base64 (0.1.1)
bigdecimal (3.1.4)
base64 (0.2.0)
bigdecimal (3.1.5)
coffee-script (2.4.1)
coffee-script-source
execjs
Expand All @@ -25,7 +25,7 @@ GEM
connection_pool (2.4.1)
dnsruby (1.70.0)
simpleidn (~> 0.2.1)
drb (2.1.1)
drb (2.2.0)
ruby2_keywords
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
Expand All @@ -34,7 +34,7 @@ GEM
ffi (>= 1.15.0)
eventmachine (1.2.7)
execjs (2.9.1)
faraday (2.7.11)
faraday (2.8.1)
base64
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
Expand Down Expand Up @@ -216,21 +216,23 @@ GEM
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
mini_portile2 (2.8.5)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.20.0)
mutex_m (0.1.2)
nokogiri (1.15.4-x86_64-linux)
mutex_m (0.2.0)
nokogiri (1.15.5)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
octokit (4.25.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.7)
racc (1.7.1)
racc (1.7.3)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
Expand All @@ -249,16 +251,14 @@ GEM
faraday (>= 0.17.3, < 3)
simpleidn (0.2.1)
unf (~> 0.1.4)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
typhoeus (1.4.0)
terminal-table (1.6.0)
typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (1.8.0)
unf_ext (0.0.9.1)
webrick (1.8.1)

PLATFORMS
Expand All @@ -276,4 +276,4 @@ DEPENDENCIES
webrick (~> 1.8)

BUNDLED WITH
2.4.10
2.3.26
158 changes: 158 additions & 0 deletions docs/_posts/2024-01-04-raccoin-0-2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
---
layout: post
title: "Raccoin 0.2 – Tax Reporting That Works for Me"
author: Thorbjørn Lindeijer
date: 2024-01-04
categories: release
image: /screenshots/social-share.png
---

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]({{ site.baseurl }}{%
post_url 2023-10-26-raccoin-0-1 %}) 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 <kbd>Enter</kbd> in the name
field.

![New Reports Summary](/screenshots/raccoin-0.2-new-summary.png)

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](/screenshots/raccoin-0.2-new-filters.png)

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](https://developers.stellar.org/docs/encyclopedia/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](https://www.liquid.com/) and [FTX](https://ftx.com/) exchanges. It is
also now possible to import transactions from [Trezor Suite's JSON
export](https://docs.trezor.io/trezor-suite/features/transactions/export.html),
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](https://github.com/slint-ui/slint/issues/3867).

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](https://slint.dev/) 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](https://github.com/bjorn/raccoin/issues)!
30 changes: 19 additions & 11 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ permalink: /getting-started/

## Create a Portfolio

When launching Raccoin, we are greeted with the welcome screen.
After [downloading Raccoin](index.md) and launching it for the first time, we
are greeted with the welcome screen.

![Raccoin Welcome](/screenshots/raccoin-welcome.png)

Expand All @@ -15,9 +16,10 @@ portfolio will be automatically saved each time it is modified.

## Add a Wallet

Switch to the "Wallets" page and add your first wallet.
Switch to the "Wallets" page and add your first wallet, by typing its name and
pressing <kbd>Enter</kbd>.

![Wallets Page](/screenshots/raccoin-wallets.png)
![Wallets Page](/screenshots/raccoin-wallets-0.2.png)

Generally, you'll want to set up a wallet for each individual location where you
are holding currencies, but a single wallet can hold multiple currencies (as is
Expand All @@ -33,8 +35,7 @@ A wallet is just a name for a group of transaction sources. To add transactions
to your wallet, now add a source. Currently, the UI only allows adding CSV files
in [various formats](/reference). The format of the CSV file will be auto-detected.

> If your specific CSV file format is not supported (in which currently Raccoin
> will silently refuse to add the source), please [open an
> If your specific CSV file format is not supported, please [open an
> issue](https://github.com/bjorn/raccoin/issues) describing the contents of
> that file and its origins! It is usually very easy to add support for
> additional formats.
Expand All @@ -45,29 +46,36 @@ Now that you have added a wallet and at least one source of transactions, you
can see the resulting current balance on the Portfolio page. You can also see
the individual transactions on the Transactions page.

![Transactions Page](/screenshots/raccoin-transactions.png)
![Transactions Page](/screenshots/raccoin-transactions-0.2.png)

### Filtering Transactions

The transactions can be filtered by wallet or currency.
The transactions can be filtered in various ways.

The filter input above the transactions can be used to filter transaction by
their description or hash. The warning button can be used to show only those
transactions that triggered a warning, if there are any.

To filter transactions by wallet, go to the Wallets page and click on the badge
showing the number of transactions in that wallet.

To filter transaction by currency, go to the Portfolio page and click on the
currency you want to filter on. It is currently not possible, to filter
transactions by a currency which you are not currently holding.
To filter transaction by currency, go to the Portfolio page or the Reports page
and click the currency you want to filter on.

## Tax Reports

A report is generated for every year in which transactions occurred. There is
also an "All Time" report, which covers the entire history.

![Reports Page](/screenshots/raccoin-reports.png)
![Reports Page](/screenshots/raccoin-reports-0.2.png)

There are currently two types of reports. You can switch between them using the
combo box.

Individual reports can be exported using the "Export" button, but you can also
export all available reports to a chosen directory using the "Export All"
button.

### Report Summary

The report summary displays the starting balance and ending balance for each
Expand Down
14 changes: 7 additions & 7 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ their needs.

<div class="thumbnails">
<img class="thumbnail" src="/screenshots/raccoin-welcome.png" alt="Welcome screen">
<img class="thumbnail" src="/screenshots/raccoin-wallets.png" alt="The wallets page shows the transaction sources">
<img class="thumbnail" src="/screenshots/raccoin-transactions.png" alt="The transactions page provides a detailed view of events">
<img class="thumbnail" src="/screenshots/raccoin-reports.png" alt="Reports can be exported as CSV files">
<img class="thumbnail" src="/screenshots/raccoin-wallets-0.2.png" alt="The wallets page shows the transaction sources">
<img class="thumbnail" src="/screenshots/raccoin-transactions-0.2.png" alt="The transactions page provides a detailed view of events">
<img class="thumbnail" src="/screenshots/raccoin-reports-0.2.png" alt="Reports can be exported as CSV files">
</div>

<div id="fullpage" onclick="this.style.display='none';">
Expand All @@ -45,9 +45,9 @@ thumbnails.forEach(thumbnail => {

## Download

* [Raccoin 0.1 for Windows (installer)](https://github.com/bjorn/raccoin/releases/download/v0.1.0/raccoin_0.1.0_x64-setup.exe)
* [Raccoin 0.1 for Linux (AppImage)](https://github.com/bjorn/raccoin/releases/download/v0.1.0/raccoin_0.1.0_x86_64.AppImage)
* [Raccoin 0.1 for Linux (.deb)](https://github.com/bjorn/raccoin/releases/download/v0.1.0/raccoin_0.1.0_amd64.deb)
* [Raccoin 0.1 for macOS (.dmg)](https://github.com/bjorn/raccoin/releases/download/v0.1.0/Raccoin_0.1.0_x64.dmg)
* [Raccoin 0.2 for Windows (installer)](https://github.com/bjorn/raccoin/releases/download/v0.2.0/raccoin_0.2.0_x64-setup.exe)
* [Raccoin 0.2 for Linux (AppImage)](https://github.com/bjorn/raccoin/releases/download/v0.2.0/raccoin_0.2.0_x86_64.AppImage)
* [Raccoin 0.2 for Linux (.deb)](https://github.com/bjorn/raccoin/releases/download/v0.2.0/raccoin_0.2.0_amd64.deb)
* [Raccoin 0.2 for macOS (.dmg)](https://github.com/bjorn/raccoin/releases/download/v0.2.0/Raccoin_0.2.0_x64.dmg)

Alternatively, download the latest [development snapshot](/snapshot/).
15 changes: 14 additions & 1 deletion docs/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,15 @@ Raccoin can import CSV files exported from the following sources:
* [CryptoTaxCalculator](https://cryptotaxcalculator.io/) custom [CSV import
format](https://help.cryptotaxcalculator.io/en/articles/5777675-advanced-manual-custom-csv-import)
* [Electrum](https://www.electrum.org/) (desktop wallet)
* [FTX](https://ftx.com/) (exchange)
* [Liquid](https://www.liquid.com/) (exchange)
* [Mycelium](https://wallet.mycelium.com/) (mobile wallet)
* [Peercoin](https://www.peercoin.net/wallet) (desktop wallet)
* [Poloniex](https://poloniex.com/) (exchange)
* [Reddcoin](https://www.reddcoin.com/reddwallet.html) (desktop wallet)
* [Trezor Suite](https://trezor.io/trezor-suite) (desktop and web wallet)

> Is your wallet or change missing? Feel free to [open an
> Is your wallet or exchange missing? Feel free to [open an
> issue](https://github.com/bjorn/raccoin/issues) describing the contents of
> that file and its origins. It is usually very easy to add support for
> additional formats!
Expand Down Expand Up @@ -53,6 +55,13 @@ Supported are:
> After making the edit, you'll have to restart Raccoin since it won't
> auto-reload the portfolio. Then, on the Wallets page, click the "Sync" button
> to fetch the transations. They will be stored inside the portfolio JSON file.
>
> Supported source types:
>
> * `BitcoinAddresses`: Plain Bitcoin addresses (separated by space)
> * `BitcoinXpubs`: HD wallet x/y/zpub addresses (separated by space)
> * `EthereumAddress`: A single Ethereum address
> * `StellarAccount`: A single Stellar account
### JSON Format
Expand All @@ -68,6 +77,10 @@ Supported are:
> }
> ]
> ```
>
> Raccoin also supports the JSON format which can be exported from [Trezor
> Suite](https://docs.trezor.io/trezor-suite/features/transactions/export.html).
> In this case, set `source_type` to `TrezorJson`.
## Supported Export Formats
Expand Down
Binary file added docs/screenshots/raccoin-0.2-new-filters.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/screenshots/raccoin-0.2-new-summary.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/screenshots/raccoin-reports-0.2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/screenshots/raccoin-transactions-0.2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/screenshots/raccoin-wallets-0.2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 508fa1b

Please sign in to comment.