Skip to content
forked from rotki/rotki

An asset management and tax reporting application specializing in Cryptoassets

License

Notifications You must be signed in to change notification settings

premachb/rotkehlchen

 
 

Repository files navigation

Rotkehlchen

Rotkehlchen is an asset management and accounting application specializing in Crypto assets and aims to also help with tax reporting. It has integration for multiple exchanges with more coming soon.

Table of Contents

Disclaimer

ROTKEHLCHEN'S SERVICE IS INTENDED ONLY TO IMPORT, DISPLAY, STORE, AND GENERATE REPORTS AND STATISTICS FROM CRYPTOCURRENCY TRANSACTION DATA AND OTHER ASSETS. YOU, AS THE USER OF THE SERVICE, ARE RESPONSIBLE FOR THE TRANSACTION DATA IMPORTED, STORED, AND ANALYZED BY THE SERVICE. IF INACCURATE OR INCOMPLETE TRANSACTION DATA IS PROVIDED TO THE SERVICE, THE REPORTS GENERATED BY THE SERVICE WILL ALSO BE INACCURATE OR INCOMPLETE.

ROTKEHLCHEN DOES NOT PROVIDE TAX OR LEGAL ADVICE THROUGH THE SERVICE AND THE SERVICE IS NOT INTENDED TO BE A SUBSTITUTE FOR PROFESSIONAL TAX OR LEGAL ADVICE OR FOR YOUR OWN DILIGENCE IN ENSURING THE ACCURACY OF ANY AND ALL INFORMATION YOU SUBMIT TO TAX AUTHORITIES. IT IS YOUR RESPONSIBILITY TO PRESENT YOUR TRANSACTION DATA AND ANY REPORTS GENERATED BY THE SERVICE TO YOUR TAX OR LEGAL ADVISORS FOR REVIEW. ALWAYS SEEK THE ADVICE OF YOUR ACCOUNTANTS, ATTORNEYS, OR OTHER QUALIFIED TAX ADVISORS WITH ANY QUESTIONS YOU MAY HAVE REGARDING YOUR TAX LIABILITY. NEVER DISREGARD PROFESSIONAL TAX OR LEGAL ADVICE OR DELAY IN SEEKING IT BECAUSE OF SOMETHING YOU HAVE READ OR BEEN PROVIDED FROM THE SERVICE.

THE SERVICE IS NOT INTENDED FOR CONTINUOUS MONITORING OF TRANSACTION DATA OR FOR AUTOMATIC TRANSMISSION OF YOUR TRANSACTION DATA OR ANY REPORTS OR SAMPLE FORMS GENERATED BY THE SERVICE TO ANY TAX AUTHORITY. YOU CANNOT SUBMIT PAYMENT TO ANY TAX AUTHORITY THROUGH THE SERVICE, AND WE ARE NOT RESPONSIBLE FOR ANY PAYMENT OR NON-PAYMENT OF TAXES BY YOU.

Installation

The easiest way to start rotkehlchen is to download the packaged binary for your Operating system. For now only Linux and OSX is supported. To see how to do this go to the next section.

Packed Binaries

Linux

Go to the releases page and download the linux-x64 package from the latest release.

Unzip it in a directory of your choice. In the root directory of the unzipped archive there is a rotkehlchen executable. Run it to start rotkehlchen.

OSX

Go to the releases page and download the darwin-x64 package from the latest release.

Unzip it in a directory of your choice. In the root directory of the unzipped archive there is a rotkehlchen executable. Run it to start rotkehlchen.

Build from Source

You can also build rotkehlchen in OSX and Linux from source. In order to see how to do that go to Build from Source.

Usage

In this section we are going to see how to use various parts of the Rotkehlchen application.

Sign-in/Signup

When you start Rotkehlchen you are greeted with a sign-in/signup prompt.

If you have never created an account before press "Create New Account". Provide a username and a password. Don't forget this password. It will be used to encrypt all your local files. If you have purchased a premium subscription you can also add the API Key and secret here.

If you already have an account just write the name and the password here.

All accounts are created in the rotkehlchen directory which is located in: $HOME/.rotkehlchen. Each user has his own subdirectory.

Changing the Profit Currency

Rotkehlchen calculates everything, including your profit/loss for your tax report into a given FIAT currency. This is what we call the profit_currency. By default this is the US Dollar. You can easily change this setting by clicking on the currency icon the top right menu and changing it to the currency you are using.

Connecting to an Ethereum Client

When Rotkehlchen begins it tries to connect to a local ethereum node running with an rpc port set at the default port 8545. If no client is running then all blockchain queries will use etherscan and this will be rather slower.

If you want to connect to an ethereum client running in a non-default port you can set that through the settings. Click the person icon on the top right menu and select "Settings" from the drop down menu. This will take you to the settings page. Write the desired port in the ETH RPC Port textbox

Adding Exchanges

You can integrate many different exchanges with Rotkehlchen. Currently supported exchanges are: Kraken, Poloniex, Bittrex and Binance.

To do so you have to go to your exchange and create an API key. If the exchange allows it make sure that the API Key only has reading/querying permissions to your account and nothing else since that is all the permissions needed by Rotkehlchen.

Click the Person Icon on the top right menu and then choose "User Settings". This will take you to your user settings page. Under the exchange settings sections, select your exchange from the dropdown menu. Then copy and paste the API Key and the API Secret in the respective text fields and press submit.

If all went well, then you will get a confirmation that the connection was successful. If not please doublecheck that the key and secret are correct.

Adding Fiat Balances

Rotkehlchen is an asset management application. Thus you can track all your assets in one place including the FIAT balances you have.

To add or modify the amount of an owned FIAT currency, go to the user settings page, scroll down to the "Fiat Balances" section and choose the currency from the dropdown menu. Input the modified balance in the text box and press the Modify button.

Adding and Removing Blockchain Accounts

Rotkehlchen allows to track balances of blockchain accounts.

To track an account go to the user settings page, scroll down to the "Blockchain Balances" section and choose the blockchain from the dropdown menu. For now only Bitcoin and Ethereum chains are supported. Then type or paste the address in the "Account" textbox and press the "Add" Button.

To stop tracking a particular account scroll down to the accounts tables and simply right click on the account you want to stop tracking and select "Delete" from the context menu.

Adding and Removing Ethereum Tokens

Rotkehlchen will check all of your ethereum accounts for balances of a given list of tokens. This list can be provided and modified by you.

To do so go to the user settings page, scroll down to the "Blockchain Balances" section and look at the "Select Eth Tokens to Track" multiselection widget.

In order to add a token to the tracked tokens find it on the left menu and click it so that it gets added to your tokens.

In order to stop tracking a tocken, find it on the right menu and click it to stop tracking it.

All account balances will be updated at this point.

Manually Adding Trades Or Taxable Events

Rotkehlchen will pull all your trade history from the exchanges whenever it needs it. But most of us have probably also done some OTC trades or taxable events at some point. Such events could even just be mining tokens, depending on your jurisdiction, participating in an ICO or getting paid in crypto.

On the left menu click on the trades button and select "OTC Trades" from the dropdown menu. This will take you to the OTC Trades page.

To add a new trade or taxable event, fill in all the field and press the "Add Trade" button.

Some very important things to note. All pairs should be in the form of BASECURRENCY_QUOTECURRENCY. For a buy this means you are buying amount of the BASE currency at a price of rate QUOTE currency per BASE. For a sell this means you are selling amount of the BASE currency at a price of rate QUOTE currency per BASE.

If there was a fee for the trade you should input it in the corresponding box and also enter the currency the fee was paid in. Fee can also be 0.

You can provide additional notes or even links to blockchain explorers for each trade.

At the bottom of this page you can see a table of all your OTC trades.

Creating a Tax Report

Rotkehlchen creates a tax report for you based on your trades and some settings which you can configure at the user settings page. This is essentially a calculation of profit or loss for all your trades based on the given dates.

Some settings are at the moment hard coded, for the German tax jurisdiction. For example all profit/loss calculation is done for trades on a first-in/first-out basis and profits from selling crypto assets after 1 year are non taxable. These settings will be made adjustable soon.

To create a tax report click on the "Tax Report" button from the left menu. Choose a start and an end date for the report and then click the "Generate Report" button.

The calculation may take some time. Once done you have an overview of the profit/loss for the given period, how much of that is taxable, and how much each taxable event category contributes to the total.

Additionally below the overview you get a table containing all of the taxable events that were taken into account in the calculation along with how much of the profit_currency you lost or gained through that event.

Finally you can get a nice CSV export by pressing the "Export CSV" button. This export is meant to be imported into google sheets. Press the button and then choose a directory to write the CSV files to. Once done you can import the CSV files into google sheets via its import menu.

Wanna Help?

Contribute

It's an open-source project so help is really appreciated.

Open issues or pull requests to help with development, be active in Github and above all be nice.

In order for your Pull Request to be considered it will need to pass the automated CI tests and you will also need to sign the CLA (Contributor's license agreement).

Get Premium -- Coming Soon

Buy a premium subscription to the software and help us with the development while at the same time enjoying all the cool neat features coming to premium subscribers.

Donate

Don't want or can't afform premium? Still wanna help? We also accept donations.

About

An asset management and tax reporting application specializing in Cryptoassets

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 63.1%
  • JavaScript 27.5%
  • CSS 6.2%
  • Shell 1.7%
  • HTML 1.5%