Introducing HandCash 2.0 — Future Proof
Since we launched the first public HandCash Beta app on June 1st, 2018 (for Android only back in those days), we learned so much from Bitcoin by experimenting, testing, breaking things — and talking with all of you!
The vast amount of user feedback we’ve collected over this first year helped us to realize that we could do so much more, so much better. But that could only happen if we rebuilt the whole thing from scratch, focusing on what matters in the long run and building a strong foundation for the years to come with scalability and efficiency in mind.
This article is an overview on the new features, which fundamental changes we’ve made as a whole and, what we think it’s the most important, our reasoning behind our decision making.
New features and changes
Let’s start with some of the new features we’ve added to the new app.
In-App Top Ups: Easy access for topping up your wallet has always been a priority for us, but we wanted to do it in a way we didn’t have to start an exchange from scratch.
For that, we partnered with a very experienced third party service that will offer a fast and reliable top up experience at a very reasonable cost.
This system is not yet in production as there is still some pending paperwork, so we will more information on this in the coming weeks — but make no mistake: we intent to make this the most easy and elegant way of getting Bitcoin. Stay tuned!
Paymail: Finally we have integrated Paymail to HandCash — which is basically like our $handle system but for all services across Bitcoin SV, and with the same format as an email address.
You will get a free Paymail address with HandCash 2.0: it’s just your $handle minus the $, plus @handcash.io
So $alex will keep being your $handle for HandCash to HandCash transactions, and firstname.lastname@example.org is your Paymail so people from other services can send you money to your HandCash account. That easy!
Rich Profiles: With our goal of making HandCash the wallet you can connect to any app or game, we understood having verified identities with rich profile data was a must. Now you can set your display name and profile picture very easily and works the same way regardless of platform, unlike in the betas.
Friends: “Contacts” have been renamed as “Friends” and although it doesn’t make much sense now, once we roll out in the coming weeks the replacement for Cashport (the first login system for Bitcoin) it will become very obvious why it’s a better fit.
Also, we have added better managing tools so now you can delete friends from your list by swiping to the left, and you can add any Paymail or 1handle (with a @relayx.io Paymail format).
Paymail not only enhances and simplifies interconnectivity between apps, it makes it easy things like loading up your MoneyButton account right from HandCash without even entering their website.
And now your contacts are saved along with your HandCash account, so they won’t disappear anymore after reinstalling the app.
Notes: This is a fun one! Add a note up to 30 characters (including emojis) with any transaction to $handles (to Paymails in the future too!) so people have a reference on what that money is for.
This makes HandCash feel more natural, more human and more social.
We will add some interesting new ways of using and interacting with notes in the near future, stay tuned!
Vastly improved Payment history section: We have renamed “History” to “Payments” and moved it to the drawer menu. Now, the fiat amount sent is recorded along with the Bitcoin SV exchange rate of that instant.
So if you paid $10 last week, you will see the $10 value permanently.
The cool thing is that if you enter transaction details, you’ll see also the value at current exchange rates in your current local currency. So you might be able to see those $10 you paid last week are now worth $10.25 — or even cooler, if you are using Yens now you might see those account for ¥1100.
Pretty handy for a technology that aims to be universal cash!
Better access to Support: Right now you can contact Support directly from the app, and even ask a specific question regarding a particular transaction. We are proud of our support team and will keep making it better and faster.
Slowly phasing out Bitcoin addresses: we have hidden your Bitcoin legacy address three taps away from the home screen — and under an “Advanced users only” label.
The whole ecosystem is working towards a future without Bitcoin addresses, where all transactions are truly private and P2P, so we decided to gradually adapt the wallet while the ecosystem phases out this practice.
For example, the “Pay” button in Home, is only for paying correctly formatted Bitcoin QR Payment Requests, which are the industry standard for both retail and online shopping, but we are already disabling the ability to send money to “raw” legacy addresses via QR code as they are the same for BTC and BCH, and at this point many of our users still were sending money into the void.
We think allowing this is reckless and we want to create a safe environment -we are dealing with people’s money after all! You can still send to raw legacy addresses by pasting them on the input text box in “Send”, but as an advanced feature and we are not promoting them in any way. You can do it if you know what you are doing, though.
The ecosystem is moving towards seamless, automatic and interaction-based payments anyway, with Paymail as the main standard for manual transfers between Bitcoin ecosystems.
Familiar on the outside, brand new on the inside
The need for rebuilding all our apps and systems became obvious early this year. We couldn’t deliver a great user experience by having two totally different apps (one for Android and another one for iOS) with two totally different ways of handling transactions.
Plus, we knew after the first Bitcoin SV workshop how BIP270 would be the way to go if we ever wanted to scale this beyond the current 10,000 users in Bitcoin SV and that demanded a deep reassessment on how a Bitcoin app from 2020 and beyond would look like.
So although it was a tough decision to stop improving the public apps for a few months, we were convinced it was the right call in the long run. And now, after having developed the first 2.0 version, the new Cloud Infrastructure and the basic structures for the new Cashport and POP! we couldn’t be happier enough about having done this as soon as possible.
This painful process is officially over!
Moving away from legacy Bitcoin wallet client systems: Demanding a mobile wallet client app to constantly query the blockchain is very resource intensive, and we cannot control how well connected or available thousands of individual devices are at all times.
This caused frequent sync issues, opened the door to double spend attempts and made us blind to what was happening in case a user had an issue.
Working with the architecture we had in the betas was a nightmare for support and user experience.
In our opinion after testing all kinds of Bitcoin schemes, SPV works great in a central server, dealing with all the heavy work for the user, so our wallets are now very fast, efficient, reliable and do not have to even restore an account from the blockchain ever more — it just works as soon as you enter the app or validate your phone number and Recovery Phrase.
Basically the wallet just asks our systems “What’s my balance?” and the system replies, instead of asking a $99 Motorola to query the blockchain for minutes or hours and sending messages of “this app is consuming too much battery” or data plans.
Now it’s very easy for us to create new products that just connect to your account, and it will become very apparent in the coming months with some new kind of products we will launch.
Phone verification: Although this is currently not a common practice for Bitcoin apps, very soon all wallets will be required to add KYC (Know-Your-Customer), so we better start implementing it bit by bit instead of introducing a drastic change if we make it down the road.
Besides KYC, we see that the benefits hugely outweigh any drawback. For one, it allows us to impede people hoarding $handles — and will stop fake accounts begging for money on Twitter as a side effect.
Then, it makes it very easy for us to implement other social and connectivity functionalities in the future making the app much more capable. But what’s truly interesting about phone verification is the huge role it will have in our quest for finally removing the need for the usual 12 words seed, AKA “Recovery Phrase” in our new app. More details on this in the near future.
Technology allows us to create non-custodial accounts that are as easy to recover as WhatsApp, thanks to advanced cryptographic innovations only possible on Bitcoin SV due to nChain patents, so we are making it happen step by step.
And don’t worry, in a couple of updates we will make it possible to change your attached phone number right from the Account menu.
Flutter: Being able to effectively manage resources is key for a young company, but being focused on providing the best user experience possible we didn’t want to settle for HandCash to be a crappy hybrid app. We knew it had to be native.
That’s why the development of Android and iOS was so off… we wished for months a good alternative would appear, and it did! Google launched its framework “Flutter” out of beta months ago, which promised to deliver native performance with just one codebase for all platforms — and we decided to give it a chance.
Holy s***! We couldn’t believe not just how fast was to learn and develop an app with it, but also how great Flutter apps feel even in older phones.
Developing our new apps with Flutter has been a huge time and money saver. Truly a gift from the gods.
Advanced new 2FA Backup system: As a first step towards removing the need for 12 words seeds for backing up and restoring accounts (which is one of the biggest pain points when asking regular people to use Bitcoin) we decided to create the industry’s first non-custodial 2FA backup system.
It is basically a split key technique, adding phone validation as part of the equation to make it an order of magnitude safer.
So now with your new HandCash account, you get half of the full private key for you to write down, and we store the other half. We do not know nor have access to your half key, much less to the full key. So still non-custodial.
Once you validate your phone number, we securely send you the other half and the full private key is reconstructed in your device’s keychain — out of reach from other apps or users.
You will never get to see the private key this way and this has countless benefits, with no additional drawback: among those benefits, we are protecting you from exposing the raw private keys while at the same time giving you full control and exclusive access to your money. We ran a quick UI test and found that almost 40% of users take screenshots of their 12 words and that is a HUGE security risk when you only need those 12 words to access the money. Now, even if you have a screenshot of the 12 words you will still need to verify your identity by phone number, adding a 2FA layer to what up to now were only “plain” 12 words with full access to your money with no protection at all.
We compare this to storing your money in a shoe box vs inside a safe.
With a shoe box there’s not protection whatsoever, and it is as secure as your ability to hide it. A safe can be more accessible and visible, as it still requires a private validation from your side and it’s built in a more robust fashion.
We will release an article explaining some additional reasons why it made sense to do this and why we think this might become the standard from now on — unless we manage of getting rid of the 12 words system soon enough!
We hope we have clarified our decision making process on why so many changes and why we had to rebuild the whole thing and that delayed adding many of the features you requested for a few months.
Thanks for all the support you provide to us. We believe in creating honest, good products that you can feel proud of recommending your friends and family. That’s why your support and recommendations are the key to the success of HandCash.
This is just the beginning!
P.S.: Oh, and you can find the migration guide here to start using your current beta $handle in the new app.