Firefly

A new wallet for IOTA 1.5

The upcoming fundamental changes in the IOTA protocol (new signature scheme, etc.) require a completely new wallet architecture. IOTA has taken this as an opportunity to completely rethink the wallet from the ground up, from transaction logic to user experience and design. The new wallet, called "Firefly," is intended to serve as a platform for the current and future IOTA ecosystem.

Image of Firefly's Dashboard im Dunkel-Modus

Image: Firefly's dashboard in dark mode

The Wallet's technical architecture and user interface were designed in the context of future additions such as digital assets, chat and contact management. Over the next year, a number of additional features will be added to the wallet. The first version of Firefly initially emphasizes security, ease of use, and an extensible architecture.

There are already some obvious differences from the old Trinity wallet:

  • Profiles: The app can be used by multiple people on the same device without accessing each other's wallets.
  • Accounts: A user can split their funds between, for example, a main account, an expense account, and a Ledger Nano account.
  • Entering a PIN opens the wallet without ever decrypting the seed, so the account balance can be checked securely.
  • Reusable addresses: The new Chrysalis addresses (Bech32 standard) look like this: iota11qykf7rrdjzhgynfkw6z7360avhaaywf5a4vtyvvk6a06gcv5y7sksu7n5cs
  • 24-word recovery (Bip39 standard)
  • Improved usability and network performance
  • A network indicator displays information about the current state of the IOTA network

Image of Kont System

Image: Firefly's account system

Under the hood

An extensible and exportable application core

With this concept, all developments from other programmers can be reused in new applications. Consequently, some useful tools already exist for other developers to create their own applications.

stronghold.rs - A secure multipurpose library for handling and storing seeds

Stronghold is the most relevant new feature that significantly improves the security of the wallet. Sensitive operations such as address generation and transaction signing take place in an isolated application memory, keeping the seed away from potential attackers. Stronghold also serves as a key-value store and is used to store applications. This means that the wallet becomes fully portable. To transfer the transaction history to another device or wallet-app, only a recent Stronghold backup is needed.

wallet.rs - A versatile wallet library.

All transaction logic in Firefly is provided by wallet.rs - a comprehensive IOTA wallet library written in Rust. The library provides all the functionality needed to create wallets and exchange integrations, from account creation and transfer initiation to state management and backup. The first version will come with Neon bindings for Node JS. Python and WASM will follow, with more to come at a later time.

With wallet.rs and stronghold.rs, developers can easily integrate secure wallet and payment functionality across a variety of use cases and environments. In addition, the mindset of reusability is also being applied to user interface design, and IOTA plans to provide a component library for developers to use in their own projects. At the same time, a plugin system with an access control API is being worked on to give users control over what features should be enabled in the wallet. IOTA anticipates a number of community projects developing wallets and other applications using these tools.

The future of Firefly

Firefly serves as an entry point into the IOTA ecosystem. IOTA will be adding new features in the future to improve the user experience as a payment protocol. However, the priority is first on the desktop version before turning attention to mobile devices.

The new wallet is a modular platform for different applications, possibly from third parties. The following section lists a few of these upcoming features:

  • Mana delegation: This function will be mandatory in the mainnet after Coordicide. You will then be able to pledge the mana generated by the tokens held to nodes for a fee.

  • Contact system: Account addresses can be linked to names. So Firefly solves the problem of complicated addressing of cryptocurrencies for users, for example, to make repetitive transactions (e.g., business contacts or friends) safer and faster.

  • Chat with payment function: users should be able to deal with cryptocurrencies as easily as sending text messages or scanning a QR code. The messaging app is similar to the way the app WeChat (by Tencent) works. WeChat already covers more than 30 percent of mobile payments in China and is growing in popularity.

Image of Assets2

  • Digital identity: Providing users with a digital identity increases trust in transactions. Users can enhance their profile with verifiable credentials such as third-party verified KYC information. Also, a user could easily identify themselves at various terminals using their cell phone via NFC. A digital identity implementation opens up a large set of other use cases.

  • Browser extension: An extension is coming, however one may be curious about the implementation. Will it be similar to Metamask? Will there be a bridge to ETH? There are a lot of rumors, but none of them have been confirmed yet.

  • DApp interaction: Various third-party apps will be able to communicate with the wallet and possibly with each other. For example, exchanges, stock exchanges or banks could use the IOTA wallet platform as a basis for their own applications to interact with the Tangle. This creates entirely new services and application areas. In addition to easier and faster buying / selling of MIOTA, this could also enable real-time EUR / MIOTA exchange transactions if the wallet would get a third party app with a banking license and thus direct banking connection.

  • Access Control: Access can be granted to a wide variety of devices / locations with IOTA Access.

  • Digital Assets: The management of Colored Coins and NFTs will also be possible with the wallet in the future.

Image of Assets Image of Assets2