Firefly Mobile Development Update

Firefly Mobile Open Sourcing

At the IOTA Foundation, our ethos is that we should work out in the open as far as possible. Open-sourcing allows us to pool the broad talent we have within the community, ensuring the users of our software have eyes on it early, allowing them to feed into the development process. Obviously, there are cases where it makes sense to keep things private, for example where a project is in its infancy, but the goal should always be to develop in the open. In the case of Firefly Mobile, we decided to keep things closed source to allow the new team to get into a rhythm and get the project in a reasonable state before worrying about community input. But in line with our open-source ethos, we are now opening up Firefly Mobile’s development to the public.

The work on Firefly Mobile is hosted on the feat/kickoff-mobile branch on the Firefly repo. This will soon be merged with develop, along with other work happening in parallel.

Firefly Mobile Mock-ups. From left to right: dashboard dark, dashboard light, account view light.

Firefly Mobile Development Update

Firefly Mobile will have more-or-less feature parity with the desktop wallet. Like desktop, the first mobile version is a simple but functional wallet; easy to use and with a clean UI. The app follows the same security model as the desktop wallet, using Stronghold for seed storage and wallet backup, where any sensitive operations are executed in an isolated area of memory. Users can create multiple wallets within a profile to manage their token holdings and have multiple profiles in the same app. This will give maximum flexibility when we introduce features down the line like Digital Assets and Identity. Users will also be able to display and scan QR codes to fill in payment details before a transfer.

The app uses a combination of Ionic Capacitor, Rust, TypeScript, and Svelte. This is a nice stack that allows us to benefit from the flexibility provided by the JavaScript ecosystem. We can build a beautiful front-end for both Android and iOS in a short space of time. We get great performance and security by having any heavy-lifting and sensitive operations in Rust. And we can still use native functionality for things like the QR Scanner and File System through Capacitor.

During this period we have hired new team members, built out much of the mobile app’s user interface, and worked on the Android and iOS bindings for our wallet.rs library. This library forms much of the core logic in Firefly Mobile (and Desktop) and without the bindings ready we have only been able to progress so far. The good news is that the Android bindings are now in a working state and we are currently preparing a Capacitor native module to allow us to begin hooking up the core app logic. The iOS bindings are a little further behind, but the core wallet.rs functions have been implemented, and we are also about to begin implementing an iOS Capacitor native module.

What’s Next

We continue to expand the mobile team to ensure we can deliver the full range of features we have planned. The next goal is a Mobile alpha where we test the app with the community. The alpha version will have a minimal set of features, and in this period we will fix bugs and add the remaining features before transitioning to beta and later, once audited, a production release.


You can keep up-to-date with Firefly Mobile’s development by joining our Discord and following the #firefly-dev and #firefly-discussion channels.