2017-08-08 Blockstack on iOS Meeting

This is a follow-up on the 2017-08-04 Blockstack on iOS Meeting with @jorge and @jeremyrwelch


  • Logan (Casa)
  • Scott (Casa)
  • @larry

Authentication on iOS

We discussed how authentication will work on iOS.

  1. Blockstack for iOS implements the blockstack: protocol handler.
  2. App generates an authentication request which is in the form of a JSON Web Token.
  3. App calls the blockstack: protocol handler with the authentication request and iOS sends this request to the Blockstack for iOS app.
  4. User is presented with a sign in request user interface.
  5. If user approves sign in, Blockstack for iOS requests a session token from the light core node running in the cloud. This provides permissioned access to the user’s storage.
  6. Blockstack for iOS generates a response that includes the session token and calls the app’s custom protocol handler to reply with response.
  7. App decodes the authentication response. It uses the included session token to access storage via the cloud core node and the included app private key for encryption and signing of data.

Implementing blockstack.js functionality on iOS

We discussed a few approaches to implementing the functionality:

Rewrite the blockstack.js stack in Swift or Objective-c

This is a lot of work and we’re not sure how many of the dependencies exist.

Wrap blockstack.js in a Swift API

A more attractive option is to figure out a way to wrap blockstack.js in a Swift API. This might be accomplished by creating a web page that includes blockstack.js, loading it into an invisible web view and making calls to blockstack.js methods by using the evaluateJavaScript(_:completionHandler:) method.

Action items

  • Blockstack core team will provide more guidance as to the time frame for mobile storage support at the end of the current (0.14) sprint on August 14, 2017.
  • Logan will take a crack at wrapping blockstack.js in Swift API

@larry thanks for the thorough meeting notes.

Has there been any more updates since 8/8 on the progress on getting Blockstack to work on iOS?


I am also wondering if there is a “latest state” of Blockstack iOS anywhere?