# Adding a Coin on Komodo Desktop Wallet

Before a coin can be listed in Komodo Desktop Wallet, it needs to be confirmed for compatibility, and present within the Komodo Platform coins repository (opens new window).

This involves:

Once these steps are complete, you can submit a PR to the Komodo Desktop Wallet repository (opens new window)

Here is an actual example (opens new window) of the files that need to be modified:

  1. Add information to 0.x.x-coins.json (opens new window). Note: This filename changes depending on the current version of the Desktop app.
  2. Add TradingView IDs (opens new window) (optional) if available. This is used to show price graphs.
  3. Add an entry to the Style.qml file (opens new window), to define the text color used to display the coin name. Be sure to check that this color works well and is readable within both lite and dark themes.
  4. Add a coin icon to the atomic_defi_design/assets/images/ (opens new window) folder. This should be in PNG format, optimised for filesize (less than 500kb), and at least 128 x 128 pixels in size.
  5. Add a reference to the icon image file into qml.qrc (opens new window)

# Update coins.json

parameter Type Description
coin string Ticker of the coin. Must match the "coin" field for an entry in the coins repository (opens new window) If the coin is on more than one network, use COIN-NETWORK as ticker, eg BTC-BEP20.
name string Full name of the coin. Should match the "fname" field for an entry in the coins repository (opens new window). Coins on more than one network share the same name.
type string Defines the category or network the coin is from. For example, ERC20 for tokens on the Ethereum network; Smart Chain for Komodo Platform Antara smart chains; UTXO for Bitcoin forks (LTC, DOGE etc)
coinpaprika_id string (optional) This is the coin's ID on CoinPaprika (opens new window), used to retrieve pricing info.
coingecko_id string (optional) This is the coin's ID on CoinGecko (opens new window), used to retrieve pricing info.
nomics_id string (optional) This is the coin's ID on Nomics (opens new window), used to retrieve pricing info.
nodes list (required for ERC20) A list of nodes to be used for communicating with the coin's blockchain
electrum list (required for UTXO) A list of electrum servers to be used for communicating with the coin's blockchain. url is for standard TCP, url_ws is for websockets. protocol defaults to TCP, but can be set to SSL if the electrum server supports it.
explorer_url list (required) A list of block explorers, used to link the wallets to transaction details.
explorer_tx_url string (optional) Some explorers (opens new window) use different url endpoint structures, and will require this additional field
explorer_address_url string (optional) Some explorers (opens new window) use different url endpoint structures, and will require this additional field
active boolean This is used to define the coins that are loaded by default. Must be set to false unless you have forked the project or have made an arrangement with the developers
currently_enabled boolean This is used to define the coins that are loaded by default. Must be set to false unless you have forked the project or have made an arrangement with the developers. After installing the Desktop app, your local copy of this file will set enabled coins to true so they will auto load on your computer.

Check out the examples below, and if you need any more information just drop into the Komodo Platform Discord (opens new window) and ask!

# Add TradingView IDs (optional)

Simply search for the coin on https://www.tradingview.com/markets/cryptocurrencies/ (opens new window), and click on a result to see it's graph.

The URL of the graph will be something like https://www.tradingview.com/chart/?symbol=BINANCE%3AKMDBTC (opens new window). Substitute %3A for : and we end up with BINANCE:KMDBTC, which represents the exchange and pair displayed on the graph.

For each graph available for the coin on Trading View, you can PR to add its ID to Constants/General.qml (opens new window)

The format looks like "KMD/BTC": "BINANCE:KMDBTC". Only one graph ID per pair is required.

# Update Style.qml

This is the easy bit! Just add a key/value entry with the coins ticker as key and a hex color (opens new window) as the value. Make sure the color you choose has good contrast against the lite and dark theme backgrounds.

By default, Network tokens will use the same color (opens new window) as their parent chain. For example, a QRC-20 token will use the same hex color as QTUM.

# Upload a Coin Icon

Generally the best quality icon image would be sourced directly from the project developing the coin. Alternatively, it could be sourced from a 3rd party such as http://cryptoicons.co/ (opens new window), a block explorer, CoinPaprika (opens new window), CoinGecko (opens new window), or Nomics (opens new window)

If you have created a new smart chain and need a designer to help with creating an icon, there is much talent within the Komodian community (opens new window)

# Update qml.qrc

This file defines resources such as images to be used in the Desktop app. To make sure the app is aware of the icon you;ve uploaded, all you need to do is add an entry into this file with the path to your icon (relative to the qml.qrc file).

For example, <file>assets/images/coins/minds.png</file>

# Submit the Pull Request

If you are new to Github, you'll need to make an account first, and might want to read their Pull Request Guide (opens new window)

Next, fork the Komodo Desktop Walletrepository (opens new window), and once you have made the required updates in your fork, make the pull request (opens new window)

The Komodo Platform Team will review your updates, and if anything needs fixing they will leave a comment detailing any changes that are needed before it is approved. Once approved, your updates will be merged into the dev branch, and upon release of the next version of Komodo Desktop Wallet (opens new window), your coin will be available in the app.