k57-portfolio
Manage your cryptocurrencies
Free, open-source, no ad, no data theft.

Download Windows Installer
Download Sources for Windows and Linux

Brief presentation of the application

If, like me, you're scattered all over the crypto world (multiple wallets, multiple blockchains, multiple protocols, dozens of different tokens, several centralized exchanges, ...), you may find it difficult to manage all of this. If Excel is no longer enough, then this program can help you. Bitcoin maximalists won't find much interest in it.

What does this program do ?

What doesn't it do ?

Home

This page only displays the portfolio value, but it's also the only one that updates automatically at regular intervals. Prices are retrieved via the CoinMarketCap API.

Assets / Portfolio's composition

This page provides an overall summary of the portfolio's assets, taking all positions in account, including LP, debts, and derivative tokens. At the bottom of the table, in gray, are the derivative tokens (already counted in the underlying token).

Note: All dollar stablecoins can be grouped together as derivatives of the "USD token". Even though the USD token doesn't exist, it's a construct for tracking dollar-based stablecoins.

View positions / Search positions

This page allows you to filter the positions to be displayed and group them. Here's an overview of the many possibilities offered by this page.

Click on the grey boxes to reveal (then hide) the screenshots illustrating the examples. The screenshots are sometimes truncated in this guide.

↓ 1.
What are my biggest positions ?
↑ 1.
---
↓ 2.
Am I safe from or exposed to counterparty risks ?


■■■



■■■

↑ 2.
---
↓ 3.
More details about my counterparty risks.
↑ 3.
---
↓ 4.
What is my exposure to blockchains/ecosystems ?

↑ 4.
---
↓ 5.
Do I have custody of my bitcoins ? Are they on the native Bitcoin blockchain ?

↑ 5.
---
↓ 6.
Where do I hold ether ?
↑ 6.
---
↓ 7.
Where do I hold dollar-pegged stablecoins ?
↑ 7.
---
↓ 8.
What positions do I have in the cosmos ecosystem ?
↑ 8.
---
↓ 9.
What positions do I hold in my Braavos wallet ?
↑ 9.
---
↓ 10.
Which positions need an update ?
↑ 10.
---

Database : Create / Edit / Remove

This page allows you to create/modify/delete database items.

  1. CEX: A list of trusted third parties that hold their clients' cryptocurrencies.
  2. Wallet: A list of ways to store cryptocurrencies. A wallet typically corresponds to one of the following cases: Each wallet can be "cold" or not.
  3. Blockchain: Each blockchain may or may not belong to an ecosystem (another blockchain). This allows grouping together positions that are on "sister" blockchains.
  4. Token: A list of tokens/coins. Each token may or may not be derived from another token. This allows grouping together positions that share the same underlying asset. For each token, you can define the number of decimals to display for balances. You can also specify the CoinMarketCap and/or CoinGecko slug for clickable links in the application.
  5. Position: A position is a set of "token holdings" that are closely related and always displayed together in the application. Typically, they fall into one of the following cases: With each manual update of the position, you can set a date for the next update to return to it at the right time.
  6. Tag: Each position can be associated with a list of tags. This allows creating new filtering possibilities.


Update prices and show variations

This page allows you to trigger an update of token prices and to see for each of them the percentage increase or decrease. Prices are retrieved via the CoinMarketCap API.

Sorted by performances:

Getting started

Download & Install

There are 2 ways to install k57-portfolio:

  1. Install with the windows installer : A single exe file that installs everything automatically. Download
  2. Install from source code : Available for both Windows and Linux (tested on Windows 10 and Ubuntu 22.04). The zip file is provided with a detailled installation guide for both operating systems. Download

Once installed, you should be able to try the application with a demo database by accessing This Link (add it to favorites/markups !). Note that you will not be able to update prices until you have configured the CoinMarketCap API key (see next section).

Configure

  1. Navigate to your installation folder. Copy portfolio_basic.db from the original databases subfolder to the application folder. Rename it, for example portfolio.db.
  2. Obtain a free CoinMarketCap API key by creating an account on CoinMarketCap.
  3. Open config.json with a basic text editor and change the following values:
  4. Restart your computer or simply restart the k57-portfolio service with nssm.exe.

When you modify your config.json file, to ensure it takes effect, you need to restart the k57-portfolio service with nssm.exe. If you are unsure how to do this, it's better to simply restart your computer.

Advanced topics

Configuration through config.json

Navigate to your installation folder and open config.json with a basic text editor. Here you can change the app's parameters.

Special cases in the View page

Sorting for display

Filters Token and Underlying

If the filter is Token X or Underlying X :

As a result :

Example :

With the Underlying filter, only ETH values are counted to rank the groups :

  1. 9080 $ of ETH on Ethereum
  2. 1597 $ of ETH on Optimism
  3. 338 $ of ETH on Polygon
  4. 126 $ of ETH on Starknet
These values are displayed in the diagram but not in the groups because they do not reflect the sum of positions. For example, the two positions on Polygon are worth much more than 338 $. It can also be seen that the groups are in the same order as in the diagram and not in the order of their total value.

Miscellaneous

Database management

Dependencies

Records cannot be deleted from the database if they have dependencies. For example, a token cannot be deleted if it is used in a position. This measure ensures a consistent database at all times.
Exception: A tag can be deleted even if it is used in positions; it will then be removed from all relevant positions.

No hierarchy or cycles

For each token, you can specify an Underlying Token. Similarly, for each blockchain, you can specify an Ecosystem. It is important to avoid creating cyclic or hierarchical structures. There can only be two levels of tokens: top-level underlyings and derivatives. There can only be two levels of blockchains: top-level ecosystems and non-ecosystems.

Examples of what not to do:

Concurrent Access to the Database

The database is stored in SQLite format.

Writing:
The program is designed to work locally only, without concurrent access. It is not recommended to manually modify the database or use a third-party program while the application is running, as it reloads data into its memory each time it modifies them and not when they are modified by a third party. This could lead to inconsistencies between the actual data and the data loaded into memory.

Reading:
Reading access by a third-party program does not pose any issues.

Negative Balance, Negative APR

A negative balance represents a loan/debt.
A positive APR increases the balance in absolute value, while a negative APR decreases the balance in absolute value.

Positive balance Negative balance
Positive APR Balance Increasing Over Time Debt Increasing Over Time
Negative APR Balance Decreasing Over Time Debt Decreasing Over Time