21st May 2019
9 min read

ARK Desktop Wallet v2.4— Introducing Plugins, One Of The First Plugin Enabled Crypto Wallets

It’s time to release the newest version of the ARK Desktop Wallet and this one is a BIG one! With the release of v2.4, we are officially debuting one of our most anticipated new developments — the desktop wallet plugin system. The plugin system makes our wallets even more versatile, providing developers and hobbyists with a means to easily develop and deploy additional functionality for the wallet. We can’t wait to see what great ideas you come up with!

The initial implementation of the ARK Desktop Wallet plugin system is complete. The new plugin system gives developers additional ways to expand the usability of the Desktop Wallet and develop innovative ways to interact within the ARK Ecosystem. Plugins are always optional for the user to install. Each plugin is installed on a per profile basis, allowing the ARK Desktop Wallet to remain free of any bloat. This means you get the experience you want, without any of the hassles you don’t.

With the impending release of the ARK Deployer on May 28th, we have expanded and improved bridgechain support inside the Desktop Wallet as well. We have also made all of the necessary changes for the wallet to be compatible with the upcoming Core v2.4 upgrade, ensuring that all of our product releases are in alignment and we are able maintain a smooth transition when the network is updated.

The new wallet is available for download at: https://github.com/ArkEcosystem/desktop-wallet/releases

***Note for developers:****With the upcoming release of ARK Core v2.5 in June (which will mainly be focused on cleaning up some legacy code alongside API v1), we will be dropping API v1 support in the Desktop Wallet. Please prepare any tools or services that are still utilizing API v1 and update to API v2 prior to that time.*

Plugin System

While the plugin system is already fully working, we have marked this plugin system release as a beta, as we want to receive feedback from developers to gauge where they see room for improvement. This will give us a chance to develop any necessary tools and implement features that could aid them with developing plugins and help improve the process and interface.

The beta version of the plugin system comes with the following features:

  • Sidebar menu items for custom pages.
  • Tabs on the Wallet page.
  • The ability to specify permissions on a per-plugin basis, so users can see what the plugin is capable of and what services it may access.
  • Access to wallet events so they can react at key times, such as playing a sound when a new transaction is found.
  • Access to machine audio so it has the capability to play additional sounds.
  • Alert popups to provide the user with information within the wallet (the same system used to notify users of new transactions).
  • Additional profile avatars which can be included with a plugin.
  • The ability to install and apply custom themes to the wallet.

We have already developed a few simple official plugins to show the power and ease of use of the new plugin system. Users can enable or disable the plugin system at any time in the plugin menu. Plugins are separate for each profile so you can have different profiles with different plugin settings.

Repository with official Desktop Wallet plugins is available at: https://github.com/ark-ecosystem-desktop-plugins

When you initially install Desktop Wallet v2.4 it will create a plugins folder where you can place Desktop Wallet compatible plugins and the wallet will auto-discover them when you start it. Once we move out of beta, we’ll have an auto-discovery option inside the wallet itself, without the need to manually copy files to the plugins folder or searching for them on our repositories.

Developers can also expect a guide on how to build their first plugin based on an example (and yes, it is really simple), which will be released tomorrow!

How To Install ARK Plugins?

The Desktop Wallet will create a plugins folder in your default local users folder:

  • Windows users: c:\users\\.ark-desktop\plugins
  • Mac / Linux users: ~/.ark-desktop/plugins

You can open this folder within the wallet itself, by going to Plugin Manager and pressing on the Open Plugins button.

In order for plugins to show in the Plugin Manager section, you’ll need to download and copy plugins that you wish to use into that folder. You can start by pressing on the Discover Plugins button, which will open an official Github plugin organization from where you can download plugins. Let’s do this on an example, by installing the Contrast Dark Theme plugin.

That is it! Installing a new plugin is as simple as downloading the desired plugin, extracting it to the plugin folder and enabling it in the wallet. You can do this for any other plugin in our repository. Here are direct ZIP links for the current plugins we developed for the initial release:

WARNING: Be careful when installing non-official plugins as they can pose security risks! We cannot vouch for the safety of any non-official plugins at this time. All responsibility for security testing and any vulnerabilities discovered are the responsibility of the plugin author and the user.

Upcoming Plugin Improvements

In the upcoming months, we’ll be refining and polishing the plugin system to make it more robust and even easier to use. Here are some of the things you can expect to see:

  • Discovery of new official plugins inside the wallet by reading data from official repository or NPM packages without the need to go to Github.
  • Option to install new plugins by simply clicking the install button and adding plugins via URL (eg. for community plugins).
  • Option to remove installed plugins within the wallet (disabling them is already implemented).
  • Predefined templates for easier implementation of wallet data related information (transactions, addresses, …).
  • Including external JS dependencies in the plugins.
  • Store wrapper to allow access to certain data.

The long-term vision is to provide a fully featured “Plugin Marketplace”, where users can discover and install community developed plugins as well as pay for certain premium plugins within the wallet itself.

Over the next several months, we will take user feedback on the plugin system and continue to fix bugs, improve features, and make the process as seamless and as easy as possible for both users and developers. Once we are happy with the state of the plugin system, we will begin posting brand new Tier 0 bounties in our new Tier 0 management system, specifically focused on getting open source developers involved in creating exciting new plugins. You will also be able to submit your own ideas to start brainstorming now!

Other Changes

OK, so that is the plugin system! Now that we got that out of the way, let us quickly go over the other improvements and changes in this release.

  • Support for upcoming Core v2.4 —in order to prepare for Core v2.4 changes of the Core numerous fixes have been done to already provide support for Core v2.4 (which is currently on Devnet).
  • Better support for bridgechains — numerous changes to make Desktop Wallet work out of the box for custom launched ARK bridgechains.
  • Obtain the maximum length of the SmartBridge (Vendor Field) from the network — updates the maximum length for the vendor field when the network provides a new value.
  • Display more information on the modals for sending transactions — the sender address is now also visible on the confirmation page along with the contacts name if they are added or verified.
  • New icon for disconnecting from a custom peer was added — instead of just text it now shows an icon if you are connected to a custom peer in the network management menu.
  • Show the market chart when enabling it on the profile — the market chart wasn’t properly enabled or disabled when the related setting was changed on the profile edit page.
  • Disable market chart setting if market not enabled — the profile edit page allows changing of the value for the market chart display even if no market is available, for instance on devnet.
  • Improve validation for epoch format —this relates directly for when adding a new network to the wallet with better epoch time validation.
  • Other network fees when higher than ARK static fees —resolved an issue with non-ARK chains, where the fee greater than ARK’s static fees resulted in not being able to send transactions.
  • Fixed Ledger transaction signing — in some cases Ledger signing didn’t work (on upcoming Core v2.4 changes), resulting in users unable to sign the transaction.
  • Proper navigation to other pages while loading transactions — clicking, from a wallet page, on the profile icon on the sidebar, navigated to wallets instead of profiles.
  • Fixed filtering peers based on higher height — if a bad peer has a height 50 blocks above the rest it is not returning any peer, this was happening on devnet, which made it impossible to select another peer.
  • Fixed days on the X axis of the market chart — in some cases it was displaying values such as “7:undefined PM”.
  • Removed productivity and missed blocks from delegates — with recent Core changes, some data became obsolete and as such we have removed it from views in the Desktop Wallet.
  • Do not break letter avatars when switching languages — on profile creation or edit page, letter avatars were broken when switching from one language to another.
  • Fixed sending from Ledger cold wallets — fixed an issue where synchronizer updates the public key for Ledger wallets when fetching from the API. This removed the public key for cold ledger wallets, meaning it caused an error when trying to send from the wallet.

Changes In Numbers

Since the previous release:

  • 8 different developers contributing to the ARK Desktop Wallet.
  • 63 new commits to the ARK Desktop Wallet.
  • 97 files changed in the ARK Desktop Wallet.
  • 3,326 lines of code added to the ARK Desktop Wallet.
  • 439 lines of code deleted from the ARK Desktop Wallet.

Hashes for 2.4.0 of Desktop Wallets (SHA256)

  • Linux (ark-desktop-wallet-linux-x64–2.4.0.tar.gz) 43219cfda7c97c99bdbcffa95227961f6c98838d8ff5a7d4c733e1bae3aa5c7b
  • MacOS (ark-desktop-wallet-mac-2.4.0.dmg) c2dbec2d15749355647ec8de8f988b566528a9dc0cdbdd173dce49a5bc62daae
  • Ubuntu (ark-desktop-wallet-linux-amd64–2.4.0.deb) b83b63706606188545aeaedd19881882eecdda243a6645ea552b038540d682c7
  • Windows X86 (ark-desktop-wallet-win-x86–2.4.0.exe) 91d3e676ff1eb2b80a369f97d9ed754960f8ee9e3c8bff30f151865153293808
  • Windows X64 (ark-desktop-wallet-win-x64–2.4.0.exe) 35af8ced3e9a2853ec73fbba39a47d746bfa9cea1eabd4189b3d36e0dddd0115
  • Linux-AppImage***(ark-desktop-wallet-linux-x86_64–2.4.0.AppImage)*** 97b28d0f9575587bdc0599969f6ce9cf3b25ea4d16949ecf3005d648f0ff0c03

I found a bug / an issue what do I do?

Please open an issue with all of the details at

I want to help with development what do I do?

Please open a pull request and don’t forget we are also running Github development bounty so you can earn some extra ARK.

I want to translate Desktop Wallet into my own language how can I help?

Please read instructions at this link (click on the arrow to open full guide): https://github.com/ArkEcosystem/desktop-wallet/tree/master#translations

Share:

Get in Touch!

Whether you want to learn more about ARK Ecosystem, want to apply for developer bounty, become our partner or just want to say Hello, get in touch and we will get back to you.



An Ecosystem of Developers

Join us on our journey to create the future of Web3.