Shared user data in a blockstack app

I’m trying to understand the implications of the data storage model for developing an app.

Suppose I am trying to build facebook as a blockstack app. I understand that users will store their data (biography, pictures, etc) on their own storage system (google drive, dropbox, their own server) which the page that I serve them will access, using blockstack’s API to do stuff like getFile() and putFile() agnostic of the specific storage system).

In my facebook app, I want Alice to be able to go to Bob’s profile and look at his pictures. Say Bob decided to store his files on google drive. What is the mechanism by which Bob’s google drive account would grant Alice (but not the whole world) access to those pictures? Does this entail a separate API key for each file that Alice stores in her own storage system? What steps are needed when Bob uploads a new photo? What about when Bob deletes a photo?


Can anyone weigh in on this? This seems like a pretty basic question – you can’t say “imagine if in the next facebook, users owned their own data” without defining the mechanics of how you think the data will get permissioned. If I’m missing something (or if there is another post that addresses this) can you let me know?


I am facing the same issue , I have post the same question in the Forum as well, Please if anybody has any information how different nodes can share data Among themselves??

@InzmamUlHassan This feature is called multireader storage and is currently unavailable in the latest releases. We have the feature working in a branch we are currently testing. It should be merged in the next month or so.


Thanks @jackzampolin If there is test version i can use the advance features, if you can share that would be great. I am working on real time dapps so understanding of some advance features would be great.
Thank you for getting in touch.

@jackzampolin If someone was wanting to create an application that involved private messaging in any way (like any basic social network or even something like Slack) would multireader storage be the solution?

I’d assume an implementation would be to have all users own their messages sent, and authenticated users can retrieve specific messages? There are a few other ways that I can think of doing this, but my main question is whether or not multireader storage would be the only way to implement any private communications in Blockstack.

Edit: I’ve just read the roadmap and I saw that ‘Notifications’ are slated for release early next year. Is there somewhere to read documentation on how this might look?

1 Like

@jackzampolin that is very valid question,
Thinks scenario of private messaging, If idea is to only share data among two nodes specifically, Would Multiread will deal with that?
as multiread seems to indicate that data will be share among (multiple user). But how can we implement public and private messages.

@InzmamUlHassan @brandonparee Yes multireader is the answer in both of those scenarios. We will be releasing more information on that soon.


I wanted to see if multiread is released yet, I’m working on a project currently that requires it and saw in the slack a few weeks ago saying its release would be soon. Any updates?

@sarah see this github issue:

now that the token sale was a success (congrats blackstack!) are there any updates on multireader? this is the killer feature i need to start writing my app on blockstack

hey all - I see that the most recent comment was from 3 days ago and it’s the holidays, but figured I’d to see if there was any momentum behind this? I’ve been trying to boot blockstack into my head and was wondering how come no one had started things like a Wikipedia version on blockstack - etc; but it appears this is the biggest limitation is enabling shared user data, correct?

I, too, am trying to wrap my head around how to develop applications on Blockstack and it seems like this is a pretty basic requirement. There needs to be a public index somewhere of the content that other users have produced and there needs to be a way to grant access to your data to other users based on the use-case. This is especially true when trying to think of how to solve the challenges in the recent signature bounties. Looking forward to updates on this.

We have an implementation of multi-reader that is currently in acceptance testing. Preliminary documentation is here:


Was anyone able to make this work (without running your own server)?