Binance Labs Fellow: Ironbelly, an Open-Source Grin/MimbleWimble Mobile Wallet
By: Flora Sun
Tags: Grin, Wallet, Mimblewimble, Binance, Crypto

To learn more about the Ironbelly author i1skn and the 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 got my eye on Grin at the beginning of 2018. Its unique features and cypherpunk community attracted me and I’ve started to learn Rust as well as learn how Grin itself actually works. Soon I’ve 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 a mobile. So, it runs exact the 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 have Bitcoins 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 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 an 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 somethings 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 bug-fix 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: