Announcing Mainnet Zap iOS

Jack Mallers
8 min readAug 23, 2019

Yo. Starting today, you can download Zap iOS and use it on mainnet without any remote node setup. From nothing to lightning payments in minutes, all on your iPhone. You can download the new mainnet Zap iOS here.

When describing Zap’s design and product decisions, I frequently tell people that Zap is available in response. Available in response to what you might ask? This is a quote by the late Robert Irwin, a well-respected installation artist. He would get invited to a gallery, a park, a garden, etc. where he would show up empty-handed; he would never prepare art. Instead, he would spend time looking and observing the area, and then he would respond to what he saw. He’d add something, or slightly change something in a way to transform the space, how people relate to the space, and how they experience the space. He would continue to do this as the installation was standing. The art today may be different than the art tomorrow. His art was more of a living organism, available in response.

The art of iterating and reflecting the current environment, which Irwin was practicing in the 1950s, is what anchors Zap’s design and product thinking today. Previously Zap was designed to be used with remote nodes, and to use Zap on mainnet required a fairly technical remote node setup. However, as we’ve seen things in the space evolve, it was time for me to put down my mining derivatives and open my design sketchbook. Add a thing or two. Slightly change a few things. Simply observe and respond to this ever-changing environment that is Bitcoin.

So, with all of that being said, let’s take a closer look at the all-new mainnet Zap iOS and some of the changes and additions we decided on to improve the user experience in supporting mainnet.

Visual Design

Building an intimate and trusting relationship with users is hard. We want users to feel empowered, educated, self-sovereign, and confident. As designers, we know that new environments created by new media require a certain amount of human programming. The only intuitive interface is the nipple, everything else is learned.

For Lightning, this is magnified. Communicating to users why a recovery phrase is important, how to go from on-chain to Lightning, multi-layered balances, what you can hide from the user, and what needs to be shown has not been easy. Especially as the technology itself is far from finished. So, we decided to use a long-standing design tactic that has proven itself over time: visual art. Historically, visuals help convey important or hard to digest information. We think visuals are underutilized in the Bitcoin space and we intend on leading this design effort by example.

Previously, launching Zap iOS looked like this.

I’ll be the first to say it, not great. Hand high in the sky, that one is one me 🙋‍♂. Zap’s target user was a more technical remote node user. Previously, we weren’t onboarding new users with a node on their phone. With the latest updates, you may not recognize Zap iOS. You will see visual design and art everywhere to humanize Bitcoin and Lightning. Visuals will make things relatable, build a relationship with the user, and guide the user to the self-sovereign, your keys your coins, Lightning-enabled user they can be.

Over the coming months, you will see a lot of Zap art throughout our products. As Bitcoin enters a more consumer-facing era post Lightning, we see visual design as a major player in humanizing the protocols, furthering our effort towards mainstream adoption.

Empty State Interactive Design

One of the biggest user experience challenges currently is onboarding users onto Lightning. We have seen many apps try various things with different trade-offs.

As excited as we are about autopilot, we don’t think it is ready just yet. Autopilot seems to be more confusing than not and was jarring to users, at least for now.

Users have suggested Zap should open a channel to new users and allow them to swap funds directly onto Lightning. This takes many onboarding shortcuts to improve the user experience, but it is not necessarily secure. This approach would leave Zap open to some potential attack vectors. We feel Zap is too big at this point to knowingly expose ourselves to nefarious attacks in lieu of improved UX. We also aren’t comfortable offering a short term feature-fix that we won’t be able to offer for a significant amount of time, especially one that has unsolved security holes.

There are many improvements to be made when onboarding users onto Lightning (we have a few plans ourselves), and there is a lot left to learn. Should we have our users all open a channel to our Zap routing nodes? Should Lightning wallets remove on-chain functionality? Should users be encouraged to distribute their Lightning funds between many peers to further decentralize the network? For now, we decided to simply use design to guide the user to their first Lightning transaction.

When you finish verifying your recovery phrase, Zap will now show you a “Fund your wallet” empty state on the home screen to deposit funds.

When your deposit confirms, you will see a small notification on the Channels navigation button. When clicked, you will see a similar “Open a channel” empty state to open a channel.

If you have an ideal channel peer in mind, you can paste or scan their peer info. However, if you just want to connect to a healthy routing node, Zap aggregates a list and displays them at the bottom. You can simply click one of the suggested peers to open a channel.

We don’t believe channels will be relevant to users forever, but we also aren’t entirely confident they need to be hidden from users today.

Skeleton Loading Screens

The last user experience improvement I’ll highlight is our new skeleton loading screens. A common Lightning user experience problem is the fact that the on-device node frequently needs to sync to catch up to the chain tip. This can be perceived as a heavy bogged down experience for users, needing to wait for what feels like forever, when in reality it’s typically 5–15 seconds. This was our previous syncing screen.

This experience is clearly draining. Being constantly reminded that you are storing filters of a distributed ledger is intimidating. So, maybe Lightning and Bitcoin isn’t meant for a mainstream audience.

Sike. This is a common problem in many popular consumer-facing applications. Do you think Bitcoin is the only technology that ever faced the issue of having to fetch data before being able to deliver an optimal user experience? There are many techniques and tested design tactics to ease the user into the app and rapidly reduce the cognitive load that is waiting for data to be fetched.

For us, we think skeleton loading screens are a great enhancement and are underutilized in the Bitcoin space today. It is widely known in the design space through intense user study and research that skeleton loading screens are perceived to be a shorter wait time when compared to a blank screen or progress bars/spinners. Have you used one of these services before?

Turns out they need to fetch data in order to give their users an ideal experience as well, and they seem to be doing fine.

So, with this new release of Zap iOS, there are no intense, overbearing full-screen loading animations or syncing screens. If you open Zap and it needs to sync a few days worth of blocks, fetch some channel data, load your transaction history, and so on, you will see an animated skeleton loading screen.

Thanks

Alright, folks, that’s all for now. Zap has been a trailblazer and a leader in Bitcoin/Lightning design thinking. I am proud to be working on bringing non-custodial financial tools to the greater world. Bitcoin user experience has been the one to blame as of recent. Have patience, trust the process. It may seem like we are moving slowly given the scope of a month but zoomed out to January 3rd, 2009 we are actually moving lightning fast. We got this.

I’d also like to shoutout Otto and the community. Otto is the lead maintainer of Zap iOS, with over 2,000,000 lines of code committed to the project. He DMd me on Twitter in October of 2017 looking to contribute to Bitcoin.

Since then, we have been working together on what Lightning on mobile should look and feel like. This project is community-driven. I don’t do any recruiting. Zap has no investor backing. We don’t talk to media. In some ways, Zap is a miracle. It exists because of all of us testing, writing code, suggesting features, reporting bugs, and willing Bitcoin forward. On behalf of the community, thank you, Otto, for being the change you want to see.

Lastly, I’d like to say thanks to you all. Zap iOS has thousands of active users, and today it can be used on mainnet with no remote node. Oh how far we’ve come. Thanks for your continued support, bug tickets, feature requests, and so on ❤️✊

You can contact me @JackMallers on twitter or zap@jackmallers.com via email. For bug reports, troubleshooting, feature requests, etc. we encourage you to open issues on our Github repository and/or join our slack.

You can download mainnet Zap iOS here.

The show goes on, you’ll hear more from me soon.

Catch you on the flip side 🍻✌️

--

--