Binance Labs Fellow: Ironbelly, an Open-Source Grin/MimbleWimble Mobile Wallet

2019-05-12

Written by Flora Sun, Director at Binance Labs

Today, Binance Labs is excited to announce our first grantee for the Binance Labs Fellowship.

Our first Fellow is Ironbelly, a mobile Grin wallet that is open-source, free to use, and focused on making it easy and delightful to use Grin on your phone.

Here is some background for those who arenā€™t familiar with the Grin project.

Grin is a community-driven implementation of MimbleWimble, which itself is a privacy coin concept described first in a whitepaper published anonymously in July 2016 by someone using the name of Tom Elvis Jedusor, a Harry Potter character. MimbleWimble details the concept of a privacy coin using the Confidential Transactions construction by Greg Maxwell. The Grin developer community is made up of hardcore developers who are contributing out of pure passion as they donā€™t benefit from a pre-mine. They move fast and shipped a mainnet faster than most commercial projects out there, mostly working part-time.

Ironbelly is a project by Grin contributor, Ivan Sorokin, as the first multi-platform mobile wallet for Grin. As stated earlier, Ironbelly focuses on overcoming some of the UX challenges of doing Grin transactions. Ivan (i1skn) is a very strong developer with an attitude of shipping quality software quickly for community feedback. He is also very familiar with the Grin codebase as he contributed to it.

Ironbelly is crowdfunding their project on Gitcoin and you can support the project along with us here. To learn more about the Ironbelly author i1skn and project, hereā€™s a Q&A that I did with Ivan recently:

Flora: Can you talk about the genesis of Ironbelly? What made you interested in Grin and why did you want to build a wallet for it?

i1skn: Iā€™ve had my eye on Grin since the beginning of 2018. Its unique features and cypherpunk community attracted me and I started to learn Rust as well as learn how Grin itself actually works. Soon I noticed the one thing where Grin does not shineā€Šā€”ā€Šit is hard to use for non-advance computer users. There was no mobile wallet and even the official desktop wallet has a command line interface only. Thatā€™s how the idea to create a mobile wallet for Grin was born.

Flora: Why do you call it Ironbelly?

i1skn: The name comes from a species of dragonā€Šā€”ā€ŠUkrainian Ironbelly. One of them guarded some of the oldest and deepest vaults in Gringotts. Also, Iā€™m Ukrainian myself.

Flora: Can you explain what Ironbelly is to people who are not familiar with Grin?

i1skn: Itā€™s a mobile wallet for Grin. Everybody who simply has a phone can use it. No additional servers needed. You can hold, send and receive Grins as you would currently do on a desktop.

Flora: How is Ironbelly different from other Grin wallets out there?

i1skn: Itā€™s unique in a way, that it is the only mobile wallet, which uses official Rust Grin code on mobile. So, it runs the exact same code from official CLI wallet.

Flora: For our readers who are familiar with Grin, can you talk about how Grin wallet is different from Bitcoin wallets?

i1skn: So, firstā€Šā€”ā€Šyou can not store Bitcoin in it. Second, by nature, Grin transactions are interactive and Grin does not have addresses. So, to make a transaction you need some sort of interaction with a recipient and one cannot simply send it to an address.

Flora: Can you talk about the technical architecture of Ironbelly?

i1skn: It uses the Rust code from official CLI wallet. So, there is no need to reimplement the blockchain logic. Rust code can be compiled on iOS as well as on Android. The UI is written in React-Native. This makes the project even more platform-agnostic. The goal is to have as little Swift/Java platform specific code as possible.

Flora: What were some design trade-offs youā€™ve made for Ironbelly?

i1skn: Rust and React-Native are not first-class citizens on iOS and Android. Because of that, there are some UI/UX trade-offs needs to be done. But at the current stage, itā€™s hard to name a few.

Flora: What are some features that took a lot of longer than you planned and why?

i1skn: Going to mainnet took more than I thought because I want to ensure that users would not lose their assets because of some critical bugs. All the rest so far went as planned.

Flora: What are some features that you made available initially and why?

i1skn: Well, I released the app with very little functionality and with a lot of UI/UX trade-offs. So, in the beginning, you would only transfer Grins using files and would not even have the ability to see your paper key after you have created a wallet. The goal was to give a way for people to ā€œplayā€ with Grin as soon as possible and initially only basic functionality was implemented: hold, send and receive floonet (Grin test network) Grins.

Flora: What are some features that you plan to work on and why?

i1skn: Here are some things that I plan to work on:

  • Improve key recovery process by making it interactive and interruptible

  • Improve authentication experience (add change password, TouchID/FaceID)

  • Integrations with exchanges, pools and payment processors

  • Android support

Flora: What kind of help would you need from the developer community?

i1skn: Any bugfix or improvements are more than welcome! Also, I do not have a lot of experience with Android, so any help there would be appreciated.

Flora: What kind of help would you need from the non-developer community?

i1skn: Iā€™m an engineer, so any UI/UX help is really appreciated! Also, documentation and texts in the app need some love.

Flora: What do you hope to get out of the Binance Fellowship?

i1skn: Ability to spend significantly more time on the project and attract some amazing contributors!

Flora: What do you plan to work on during the Fellowship?

i1skn: Here are my plans during the Binance Fellowship:

  • Open Ironbelly for mainnet

  • Improve key recovery process by making it interactive and interruptible

  • Improve authentication experience (add change password, TouchID/FaceID)

  • Integrations with exchanges, pools and payment processors

  • Ongoing UI/UX improvements

  • Android support

Thatā€™s it, folks! To check out Ironbelly on iOS, you can download the beta version from TestFlight. Ironbelly is crowdfunding their project on Gitcoin and you can support the project along with us here.