Let's Start Publishing Blockstack Apps to Blockstack namespaces


I want to be able to use a blockstack app that lives completely on Blockstack namespaces…so no traditional DNS. I would love to do soon and encourage apps to publish their software this way.

  1. What should the Pricing Curve be?
  2. Should these names ever expire?

What other questions should we be asking and answering? Community can you chime in with thoughtful suggestions, questions, comments?

Here is a snippet of a conversation that had happened in Slack


I think the more interesting question is what goes in a .app name’s zonefile?

Right now, for Blockstack users, its a URL to their profile.json. But that doesn’t make sense for an app.

Should it be their domain name? An IPNS url? A Gaia link to their index.html file? Any of the above?


You can put anything you want, really. It depends on the client that will fetch and load the app.

What would an application client look like? That will inform us as to what needs to be put into the zonefile to make an app load.


Does this warrant a survey of all current apps?


In the example usecase of .app
It would be really nice if a standardized structure existed, similarly to how a traditional zonefile is. To support the translation of the following record types: A, AAAA, CNAME, GAIA, and perhaps IPNS

A standardized structure would help ensure every browser client and or BNS provider needing to run a translation function, yields the same expected entry points to discover the app in question.

And indeed @jude exactly.


Also shouldn’t the price quotes on namespaces be denominated in units: 'MICROSTACKS'



I think it should be the app’s entry point. It could be the domain name, IPNS or a Gaia link (index.html or a hosting.json file with hosting details, just like profile.json) as you suggested.
But I think we should encourage app developers to use Gaia link, as one of the future design goals for Gaia hub is to use .storage namespace. And “URLs with IP addresses would work as well” according to documentation. This will make Blockstack apps less depended on DNS.

XOR uses a similar strategy to resolve a Blockstack name to a website:

  1. Gets the hosting.json for the Blockstack name
    blockstack.getFile('hosting.json', { decrypt: false, username: blockstackName })
  2. Reads the file and use the entry point to navigate to the website
    blockstack.getUserAppFileUrl( hosting.main, blockstackName, window.location.origin)