Dapps must use javascript?


Or can other programming languages be used? I looked at the “core” json API but it seems incomplete. There is no data storage (Atlas?) API’s there. Javascript is a deal breaker for me. Would a ZeroMQ or other messaging interface to core solve this problem?


A dapp (decentralized application) is generally built on top of web-based technologies due to ease of distribution, among other factors.

Regardless, there is the blockstack-android and blockstack-ios if you wanted to use those platforms/languages. If you wanted a different language, you’d have to port blockstack.js into a different language, as that is the client-side library you would use.

(There seems to be an official but WIP blockstack.go repository that hasn’t seen progress in ~5 months, though).

Also note that the core implementation is for running a blockstack node, not for creating a dapp. When running the core node you can ping it for information. Docs and an official implementation can be found here.


The public, documented Core interface is read-only, and is a RESTful endpoint. Response bodies are all in JSON. Per your other comment, Atlas can only be “written to” by means of sending a Blockstack transaction. Once the data’s hash has been accepted by the Blockstack nodes around the world, you should be able to upload the matching data to them via the CLI (using the zonefile_push directive) or by a call to POST /v1/zonefile with {"zonefile": "YOUR_DATA"} as the request body (note that content-type should be application/json). This API point is not documented, since it’s not really useful or relevant for dapp development.


@Jude thanks. What is the time required for the data hash to be accepted by the Blockstack nodes around the world? I think my confusion was that one must use blockstack.js but really that javascript is just making the JSON calls correct? And those calls are serviced by the blockstack core daemon (written in python), is that correct?
Is this the correct API docs for doing REST JSON to read/write files to Gaia storage? https://github.com/blockstack/gaia. If not, where are the details documented? thanks.

The control of user data lies in the way that user data is accessed. When an application fetches a file data.txt for a given user alice.id, the lookup will follow these steps:

  1. Fetch the zonefile for alice.id, and read her profile URL from that zonefile
  2. Fetch the Alice’s profile and verify that it is signed by alice.id’s key
  3. Read the application root URL (e.g. https://gaia.alice.org/) out of the profile
  4. Fetch file from https://gaia.alice.org/data.txt