Steep adoption path for regular users

I wanted to pickup on the Gaia discussion from the user’s perspective. It seems to me that there is currently steep adoption path for regular users. the current flow as I see it is:

  1. Install blockstack browser
  2. Get some bitcoin
  3. Buy an identity
  4. Create an account with S3, Azure, etc
  5. Setup Gaia to user the above account (I’m assuming nobody is just using their local storage)
  6. Start using a blockstack app

Am I thinking about this correctly? I like to hear some thoughts on this flow


HUGE blocker for the average user. I even have trouble getting bitcoin. If you want to create an account on an exchange, sometimes it takes days to get verified. We are trying to make this easier by supporting free “subdomains” (, for instance).

We should explain more clearly why this step is valuable (the answer is so that you can use multiplayer storage)


From a user’s perspective and an app developer’s perspective, this point is a HUGE stumbling block as well. Right now, there is literally just an option to choose Default Storage. Even if a user goes through the process of setting up an S3 account or their own Azure account, it’s not clear to me as a dev or as a user if and when they can connect these accounts. And if they can, how?

1 Like

I was looking into maybe using subdomains as a way to help the user create their own identity and maybe take on the cost there side-stepping #2 and #3

We’re also working on providing a feature-parity alternative to installing the blockstack browser. There is a POC at :slight_smile:

1 Like

We’re rolling out support for the subdomain for all users soon, so there will be virtually no cost to anyone. Keep an eye out for that.

1 Like

Even if setting up the bucket could be automated somehow, our internal user testing indicated that even something as simple as “connect your dropbox” to host your Gaia data was a consistent pain point (this is why that feature was removed from the on-boarding flow).

Thanks, Jude. I came onboard after that was disabled so that’s probably where the gap in my understanding of how it was working versus how it should work in my mind is coming from.

Does it make sense for an app to bring it’s own storage and provide it as an option to the user. It would make sense in cases where the app has to deal with large files > 1G

1 Like

This is definitely a big blocker right now. However, the roll out of subdomains or free usernames will solve this problem. There will be no need to get bitcoin and getting an identity will be very straight forward. This is happening very soon.

This is a common misconception with the way storage works on the browser right now. The default option is Gaia, backed by S3 and provided by Blockstack. Steps 4 & 5 are unnecessary if they just want to get started quickly and use storage provided by Blockstack.

Interesting idea Jack. What I see happening in that scenario is the app-owned storage option getting more love from the developers, since the developer has more control over how to efficiently manage data than is currently possible in a decentralized model. If the app-owned storage works better or even provides additional features over the truly decentralized option, there’s an incentive for users to opt into the centralized model. I would rather see us innovate on decentralized storage models than provide a fallback to a centralized service.

1 Like

Here’s what this process might look like in the future:

  1. Find a Blockstack app and click “Sign up”
  2. Get brought to (pending name change because confusion)
  3. Pick a username (
  4. Provide password and email (email is just for messages, not for account creation)
  5. Default Azure storage is selected automatically
  6. Use the app

But here is a more formal conversation about the new onboarding flow we’re planning: 2018-03-08 Mobile Blockstack ID creation / onboarding update

1 Like

Reposting a comment from our Slack by @digitalwaveride that I thought was pretty insightful:

digitalwaveride 39 minutes ago
Via “temporarily ids” the apps have it easier to allow users to do some test driving … before users have to invest buying an id. If users get any value out of the apps they will and want to buy ids in any case (the moment you have designed your page on Squarespace, paying afterwards for the URL doesn’t hurt much)

The above example of squarespace is essentially how multi-player storage works now. You can interact with an application and write to your storage, but other users won’t be able to find your content. That would only be possible if you have username.


One option is to make a “programmable” Gaia hub. A user would upload their preferences and API credentials to a public, trusted Gaia hub, and the Gaia hub would use their credentials to load and store their data. That way, the data gets stored to wherever the user wants, but they don’t have to go through a complicated on-boarding process of deploying a Gaia hub.

Another option would be to create a marketplace of Gaia hubs. The set of public Gaia hubs could be organized under a Blockstack namespace (e.g. .gaia) so they’d be discoverable. Anyone could run a Gaia hub by registering it in .gaia, and they’d each compete to offer the best service (high availability, low cost, high durability, different availability in different jurisdictions, etc.). There would need to be a UI for searching through public Gaia hubs, but it could be done.


I guess the issue is that we want to give the user the ability to manage his own data but the user may not be interested in doing so, or it may involve too much work, in which case we have to find ways to help him manage his own data with the least amount of attrition.

Regarding step 3 “buying an ID” (as mentioned in the Slack chat):

If users sign up directly via Blockstack, I think this step could be sold to users in a similar way like getting an URL. It’s kind of buying “digital real estate”. The value for the money should be obvious for users.
(That said, currently I think the messaging on the page is mainly about “the browser” and the “app store”. Buying an ID comes to most as surprise).

Though if users signup for Blockstack via an app, things are not so easy.
The users intention and desire is to test an alternative to Instagram, or Google Suite … you name it. They don’t care yet about an ID. They also don’t care yet about Blockstack. Everything that is in the way at that point will hurt conversions a lot (users drop even off if you ask them for an easy and free Google/Twitter oauth process)
People will understand why they need an ID, they will understand why it costs money etc… but you don’t want to front-load all this before they even could start the experience with an app.

Maybe there is something to learn from website service providers like Wordpress or even Squarespace.
What if you could start the experience of an app without buying an identity… but you will get just some default temporarily gibberish ID number, that might even expire after a while.

If you like the experience of an app, if you get the value of owning your data, paying for an ID will be just a little step. Maybe it is even a pleasure for some users, cause they realise “I buy that thing.” It’s mine.

I am wondering: Is this technically doable at all? (verification process… the blockchain processes under the hood? Do they have to happen upfront?)

I have no idea in what way it’s possible but it would be could to have blockstack running in parallel with an ipfs deamon/node. A kind of give and take storage. And I for example bought for my family to use their firstnames as subdomains e.g. . But the bitcoin process is still a big hurdle even for a lot of regular developers with little knowledge of the crypto scene as well.

Because thinking of the 4 rules of decentralized apps it feels like using blockstack you will have to add a fifth:
Bring your own storage

1 Like

This following post includes the huge risk to sound a like douchebag… I try to be not… please hear me out :slight_smile: :pray:

I did a little step by step onboarding flow analysis from the perspective of a user, who discovers a Blockstack app like Graphite, but without knowing anything about Blockstack so far.

Probably most of the things visualised in that analysis are already well known by the Blockstack team, maybe though there are some reminders or little things that might be helpful … maybe it’s interesting for the rest of the community to get an overview … and we can help to come up with some ideas and solutions how to solve some of the challenges in the current flow.

Important note:
Things in the current flow are for good reasons the way they currently are. I am totally aware of that. And as I don’t know any of the details how things came together, I am certainly not the person who would judge here. This is just a step by step analysis from a users point of view. The comments in the speech bubbles are just out loud thinking of a fictional user persona… if there is any emotional sentiment, it’s just to make the storytelling and user experience more real… don’t take this as judgement from my side. Big fan of Blockstack. :wink:

Here is the analysis of the current flow:


After the analysis I scribbled down a few thoughts about what if we could make that flow radically shorter? What if we focus just on the desire of a user to quickly test-drive an app.
Afterwards, when the user had a first nice experience with the app, users should easily be able to join the Blockstack ecosystem, including a clear upsell for registering a personal ID, which is in the current flow kind of hidden.

Would it be possible to keep the onboarding flow within just 4 steps from landingpage to app?

Probably I miss some important things here … but maybe it kicks off at least a useful discussion…

Be warned: These are just rough wireframe mockups… quick and dirty:

Hope that makes sense at all. Please ping me in Slack if you want to have a more conversational chat, and of course really curious about your thoughts here as well.


Awesome mockups @digitalwaveride ! These should be stickies.