Skip to content

Droplet - A New Easy To Use Mobile Wallet

dethe for xmr requested to merge detheforxmr/ccs-proposals:droplet-dethe into master

Who

Hi. I am detherminal, a software developer. This is my first proposal, so it would be good to describe myself. I entered the sector in 2020 and have been developing since. I have an enthusiasm for open-source, cryptography and privacy. I have made various contributions to open-source repos in my Github account. I also have been an employee of Cypher Stack in 2023 where I added Nano, Stellar, Tezos and made various contributions to the Stack Wallet where I wrote almost all of my code in Dart/Flutter. I have published apps in Google Play before. I also have a recent Monero library in Rust which is called libmonero. I loved Monero since I heard about it and I thought it would be good to contribute to the community.

You can contact me from:

What

As you may have heard some of them, there have been some discussions about the Monero wallets listed in getmonero.org. Some of them are:

And after all that;

  • There is only one iOS wallet
  • Some of them are for-profit (Edge and Cake Wallet)

So, I thought it would be good to write a new wallet that is free, open-source, privacy oriented that you can recommend everyone, and here we are.

Droplet will be a new mobile Monero wallet that everyone can use, written in Dart/Flutter, and that anyone can recommend with peace of mind. The planned features include:

  • Good UI/UX. (Come on, there isn't a good looking mobile wallet out there)
  • Private by default.
  • Fully free, non-profit.
  • Open-source and community oriented, that means community's request will be listened based on possibility and desirability.
  • Works both on iOS and Android.
  • Fast sync.
  • Implements not only wallet, but the ecosystem. (Like polyseed)
    etc.

There is only two resources of official communication for now:

EDIT

Since some community members seemed curious about why a new wallet is needed instead of other wallets, I will describe some of them.

  • No Gift Functionality. As discussed in bounties and by community, there is a need for functionality of gifting friends for introducing them to Monero. Unfortunately, there isn't a standard for it. I have developed a GUI app where it generates a paper wallet with easy to edit info on them for gifting. But still, this isn't secure because any person can empty the wallet if the gift taking person don't send it to their own personal wallet. There isn't any wallets that implements this feature and it would be absurd and unsecure to develop an app only for this purpose. Instead we should add this feature to a known community wallet, which will be done in Droplet.
  • Not Much iOS Options. If we take a look at the official recommendations of Monero, there is only one local sync wallet that works with iOS. Offering people options and letting them choose what they want is important as they would embrace Monero easier. Currently, only option for a local sync wallet is using Cake Wallet. But only one option forces people to use a multicoin wallet with commercial exchange features which a person might not like if they plan to use it only for sending/receiving Monero. (I plan to integrate only Serai to the Droplet, which is a DEX and will be optional to be enabled by later). Also, some of the community members agreed on this problem.
  • Not Much Language Support. Although they offer some of the most known languages, there is still languages that would be good to add wallets to make wallets usable worldwide. For example, Monerujo doesn't support my native language, Turkish. And I can't recommend my friends Monerujo because it forces them to know English. Implementing a new system thats built into the wallet for adding new languages easily not only would let people use in their own language, but also enables other people to contribute new languages to the wallet.
  • Not Much Offline Signing Support. Making the wallets only hot wallet can make them unsecure and users should be able to use offline if needed. That should be done by signing txs offline, extracting and announcing it via secure channels. Monerujo had this project and also got funded for it but they didn't complete the project even after 2 (3 from the start) years. Afaik, Anonero has this feature but its not well known and it is not user-friendly because the only way to grab the APK is going to a tor-only site, a common person would not be able to do this and keep themself secure (Not to mention it doesn't support iOS). This is a necessary feature for users to be secure and needs to be implemented in a known user-friendly wallet.
  • Not Much Hardware Wallet Support. If a person wants to go another step and get a hardware wallet like Ledger(?) or Trezor that is secure against timing, side-channel, cold-boot attacks etc, they would have some problems with them. Cake is newly adding and Monerujo has already Ledger support, but Ledger's new wallet (Stax) is not supported afaik. That is not the main problem because Ledger is known with its bad privacy reputation. Main problem is Trezor support. Trezor is fully open source (unlike Ledger) and needs software support. And the worst thing about is that Trezor's official site recommends a closed source wallet (Exodus) because lack of support for Trezor. Trezor has been in the sector for long years and its been used by many people so it needs some serious work on it.
  • No IPv6/I2P. Getting a static IPv4 address for your own personal node is so hard because there isn't much of them, and many of the ISPs offer them via an additional fee. IPv6 solves this problem by creating many IP addresses and many countries around the world are already migrating to IPv6. This way, people can connect to their own node via IPv6 and do not need to rely on third party nodes. Afaik, Cake and Monerujo doesn't support this. Another thing to be mentioned is I2P. I2P is loved by some of the Monero members and they prefer I2P instead of Tor, so it is worthwhile to add new ways to networking so the users can choose the way they want.
  • Lack Of Widgets, Graphs Etc. Getting a new person into Monero ecosystem is hard and often they just bore and don't even take a look at again. But if they put a widget on the home screen of their phone, it might remind them Monero. Except that, people need widgets for easily checking coin and price of it. Monerujo and Cake both doesn't have this in Android. Price graphs may also be good for users to record their price of their coins, and both Cake and Monerujo doesn't have it. Like always, these will be optional to be enabled later.

Bonus:

  • Merchant Mode Mobile. There is a merchant mode on GUI wallet, but accepting a cryptocurrency shouldn't require a computer. There should also be a mobile merchant mode where user can see and read text and QR. Still, both Cake and Monerujo doesn't have this.

These are some of the reasons. There are also many unmentioned features that would benefit the user's experience of using Monero. The main reason for this proposal is to create an easy to use, but at the same time a feature complete powerful wallet.

For the xmruw part, I believe we think very different about the technical aspect of the project. cyjanek thinks it should be another wrapper around wallet2, but make the header in C instead. Thats not a very innovative and useful feature, as taking a way of 'cpp -> c -> dart -> native' opens door for so many things to go wrong (I also created libmonero because of this reason, please take a look at it). I also do not believe it will be sustainable in the long run because when you want to make a change or add a feature or smt else, you would have to change all the way down. Thats not a good way. Instead, I will create a new Dart package that will contain most parts of the functionality for enabling other developers to add Monero to their wallets. Creating a hard to reproduce wallet is not a good practice, as people can't build their own wallet if they have trust issues. Binding many languages on top of each other will definitely block most of the people that build their own APK. I do not plan to use wallet2 api often (or never if possible) in Droplet.

Planned Technical Part

  • The app will be written in Dart/Flutter.
  • The app will be published on Play Store/F-droid/App Store with a publisher name of "Droplet Wallet Team" (Open to changes)
  • App will consist a new package that has necessary code for Monero implementation and it will be published on pub.dev for everybody to use.
  • Code will be hosted on GitHub and official releases will be made on there

Funding

I propose to complete and release full version of Droplet Wallet for working 6 months and 25h/week for a rate of 40dollars/h . Based on recent XMR prices (Kraken, 20-day MA) which is 133$/XMR, this makes a total of 180.45 XMR.

Milestones:

1 - Release beta version of Droplet : 90.22 (%50)
2 - Release full version of Droplet: 90.23 (%50)

Expiration: 1 June 2025
If I stop developing or you can't communicate me until the expiration date, you can give it to another person that completes the exact proposal described above.

Edited by dethe for xmr

Merge request reports