<pclass="no_toc">These FAQs are intended for developers of Blockstack.</p>
<ulid="markdown-toc">
<li><ahref="#im-a-web-developer--can-i-build-on-blockstack"id="markdown-toc-im-a-web-developer--can-i-build-on-blockstack">I’m a Web developer. Can I build on Blockstack?</a></li>
<li><ahref="#im-a-non-web-developer--can-i-build-on-blockstack"id="markdown-toc-im-a-non-web-developer--can-i-build-on-blockstack">I’m a non-Web developer. Can I build on Blockstack?</a></li>
<li><ahref="#whats-the-difference-between-a-web-app-and-a-blockstack-app"id="markdown-toc-whats-the-difference-between-a-web-app-and-a-blockstack-app">What’s the difference between a Web app and a Blockstack app?</a></li>
<li><ahref="#do-i-need-to-learn-any-new-languages-or-frameworks"id="markdown-toc-do-i-need-to-learn-any-new-languages-or-frameworks">Do I need to learn any new languages or frameworks?</a></li>
<li><ahref="#how-does-my-web-app-interact-with-blockstack"id="markdown-toc-how-does-my-web-app-interact-with-blockstack">How does my Web app interact with Blockstack?</a></li>
<li><ahref="#what-does-blockstackjs-do"id="markdown-toc-what-does-blockstackjs-do">What does <codeclass="highlighter-rouge">blockstack.js</code> do?</a></li>
<li><ahref="#how-do-i-use-blockstackjs"id="markdown-toc-how-do-i-use-blockstackjs">How do I use <codeclass="highlighter-rouge">blockstack.js</code>?</a></li>
<li><ahref="#how-can-i-look-up-names-and-profiles"id="markdown-toc-how-can-i-look-up-names-and-profiles">How can I look up names and profiles?</a></li>
<li><ahref="#how-can-i-read-my-public-app-data-without-blockstackjs"id="markdown-toc-how-can-i-read-my-public-app-data-without-blockstackjs">How can I read my public app data without <codeclass="highlighter-rouge">blockstack.js</code>?</a></li>
<li><ahref="#how-do-i-register-blockstack-ids"id="markdown-toc-how-do-i-register-blockstack-ids">How do I register Blockstack IDs?</a></li>
<li><ahref="#how-do-i-register-blockstack-subdomains"id="markdown-toc-how-do-i-register-blockstack-subdomains">How do I register Blockstack Subdomains?</a></li>
<li><ahref="#can-i-programmatically-register-blockstack-ids"id="markdown-toc-can-i-programmatically-register-blockstack-ids">Can I programmatically register Blockstack IDs?</a></li>
<li><ahref="#can-i-programmatically-register-blockstack-subdomains"id="markdown-toc-can-i-programmatically-register-blockstack-subdomains">Can I programmatically register Blockstack Subdomains?</a></li>
<li><ahref="#do-you-have-a-testnet-or-sandbox-to-experiment-with-blockstack"id="markdown-toc-do-you-have-a-testnet-or-sandbox-to-experiment-with-blockstack">Do you have a testnet or sandbox to experiment with Blockstack?</a></li>
<li><ahref="#does-blockstack-have-a-smart-contract-system"id="markdown-toc-does-blockstack-have-a-smart-contract-system">Does Blockstack have a smart contract system?</a></li>
<li><ahref="#can-blockstack-applications-interact-with-bitcoin-ethereum-smart-contracts-other-blockchains"id="markdown-toc-can-blockstack-applications-interact-with-bitcoin-ethereum-smart-contracts-other-blockchains">Can Blockstack applications interact with Bitcoin? Ethereum? Smart contracts? Other blockchains?</a></li>
</ul>
<h2id="im-a-web-developer--can-i-build-on-blockstack">I’m a Web developer. Can I build on Blockstack?</h2>
<p>Yes! Blockstack is geared primarily towards Web developers. All of your
existing knowledge is immediately applicable to Blockstack. Anything you can do
in a Web browser, you can do in a Blockstack app.</p>
<h2id="im-a-non-web-developer--can-i-build-on-blockstack">I’m a non-Web developer. Can I build on Blockstack?</h2>
<p>Yes! Blockstack implements a <ahref="https://core.blockstack.org">RESTful API</a> which
lets you interact with Blockstack from any language and any runtime. In fact,
the reference client
(<ahref="https://github.com/blockstack/blockstack.js">blockstack.js</a>) is mainly a
wrapper around these RESTful API calls, so you won’t be missing much by using a
language other than Javascript.</p>
<h2id="whats-the-difference-between-a-web-app-and-a-blockstack-app">What’s the difference between a Web app and a Blockstack app?</h2>
<p>Blockstack apps are built like <ahref="https://en.wikipedia.org/wiki/Single-page_application">single-page Web
apps</a>—they are, in
fact, a type of Web application.</p>
<p>Blockstack apps are a subset of Web applications that use Blockstack’s
technology to preserve the user’s control over their identities and data.
As such, they tend to be simpler
in design and operation, since in many cases they don’t have to host anything
besides the application’s assets.</p>
<h2id="do-i-need-to-learn-any-new-languages-or-frameworks">Do I need to learn any new languages or frameworks?</h2>
<p>No. Blockstack applications are built using existing Web frameworks and programming
The only new thing you need to learn is either <ahref="https://github.com/blockstack/blockstack.js">blockstack.js</a> or
the <ahref="https://core.blockstack.org">Blockstack RESTful API</a>.</p>
<h2id="how-does-my-web-app-interact-with-blockstack">How does my Web app interact with Blockstack?</h2>
any Web application the ability to interact with Blockstack’s authentication and
storage services. In addition, we supply a <ahref="https://core.blockstack.org">public RESTful API</a>.</p>
<h2id="what-does-blockstackjs-do">What does <codeclass="highlighter-rouge">blockstack.js</code> do?</h2>
<p>This is the reference client implementation for Blockstack. You use it in your
Web app to do the following:</p>
<ul>
<li>Authenticate users</li>
<li>Load and store user data</li>
<li>Read other users’ public data</li>
</ul>
<h2id="how-do-i-use-blockstackjs">How do I use <codeclass="highlighter-rouge">blockstack.js</code>?</h2>
<p>Please see the API documentation <ahref="https://github.com/blockstack/blockstack.js">here</a>.</p>
<h2id="how-can-i-look-up-names-and-profiles">How can I look up names and profiles?</h2>
<p>You can use <codeclass="highlighter-rouge">blockstack.js</code>, or you can use the <ahref="https://core.blockstack.org">public Blockstack Core
endpoint</a>.</p>
<h2id="how-can-i-read-my-public-app-data-without-blockstackjs">How can I read my public app data without <codeclass="highlighter-rouge">blockstack.js</code>?</h2>
<p>The URLs to a user’s public app data are in a canonical location in their
profile. For example, here’s how you would get public data from the
<ahref="https://publik.ykliao.com">Publik</a> app, stored under the Blockstack ID <codeclass="highlighter-rouge">ryan.id</code>.</p>
<p>Set up a <codeclass="highlighter-rouge">blockstack api</code> endpoint (see the project <ahref="https://github.com/blockstack/blockstack-core/blob/master/README.md">README</a>) and write a