{{ page.title | escape }}
@@ -42,7 +42,7 @@ layout: default {% include post-meta.html %}{{ page.title | escape }}
-{{ page.title | escape }}
-{{ section.title }}
+ {% endif %} +-
+ {% for doc in section.docs %}
+ {% assign doc_url = doc | prepend:"/" | append:".html" %}
+
+ {% for col in site.collections %}
+ {% for item in col.docs %}
+ {% if item.url == doc_url %}
+ {% assign doc_title = item.title %}
+ {% else %}
+ {% comment %}Do nothing{% endcomment %}
+ {% endif %}
+ {% endfor %}
+ {% endfor %}
+
- {{ doc_title }} + {% endfor %} +
{{ page.title | escape }}
+ + {% if page.subtitle %}{{ page.subtitle }}
{% endif %} + + ++ + {% include paginate-doc.html %} + + + + + + + +
{{ page.title | escape }}
@@ -47,7 +47,7 @@ layout: default {% include post-meta.html %}{{ page.title | escape }}
@@ -42,7 +42,7 @@ layout: default {% include post-meta.html %}{{ page.title | escape }}
@@ -47,7 +47,7 @@ layout: default {% include post-meta.html %}{{ page.title | escape }}
-{{ page.title | escape }}
diff --git a/_layouts/usenew.html b/_layouts/usenew.html index bc87dbfe..4fdf3714 100644 --- a/_layouts/usenew.html +++ b/_layouts/usenew.html @@ -36,7 +36,7 @@ layout: default{{ page.title | escape }}
@@ -47,7 +47,7 @@ layout: default {% include post-meta.html %}-
@@ -95,7 +98,7 @@
- Manage Data with Gaia +
- Blockstack Storage Tutorial
- Manage Data with Gaia +
- Blockstack Storage Tutorial
- Download the OSX installer from from <a href=”https://blockstack.org/install” target=”_blank”>the browser installation page</a>. +
- Download the OSX installer from the browser installation page.
-
Double-click the downloaded DMG file to launch the installer.
@@ -273,7 +276,7 @@ you are already logged into the local application: install:-
-
- Download the Windows installer from from <a href=”https://blockstack.org/install” target=”_blank”>the browser installation page</a>. +
- Download the Windows installer from from the browser installation page.
-
Double-click the installer package to launch it.
@@ -300,8 +303,7 @@ install:On Linux
The Blockstack installation on Linux requires Docker. Before installing -Blockstack, <a href=“https://docs.docker.com/install/” target=”_blank”>install -the version of Docker appropriate for your operating system</a>.
+Blockstack, install the version of Docker appropriate for your operating system.Note: The Blockstack script used in this procedure runs
@@ -309,7 +311,7 @@ the version of Docker appropriate for your operating system</a>.docker
commands. Depending on how you installed and configure Dockered on your system, it may or may not be necessary to haveroot
orsudo
privileges. For this reason, the commands below show the use ofsudo
when interacting with the script or thedocker
executable. If your installation allows running Docker with lower privileges, you can omit it.-
-
Download the Linux installer from from <a href=”https://blockstack.org/install” target=”_blank”>the browser installation page</a>.
+Download the Linux installer from from the browser installation page.
This downloads a
Blockstack-for-Linux-v0.30.0.sh
script to your local drive.
diff --git a/_site/browser/faq_general.html b/_site/browser/faq_general.html
index 2493e15e..6788b4c7 100644
--- a/_site/browser/faq_general.html
+++ b/_site/browser/faq_general.html
@@ -17,9 +17,9 @@
-
+
+{"description":"Users Frequently Asked Questions (FAQ)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/faq_general.html","headline":"Users Frequently Asked Questions (FAQ)","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/faq_general.html"},"@context":"http://schema.org"}
@@ -42,8 +42,11 @@
- Users have identities not accounts. The user brings their identity to the applications; applications do not require the user to create accounts and passwords. -
- Users own their data. Users control access to their data. Users decide where to store their data and which applications can read or write to your. Companies and their applications in the new Internet don’t keep or save your data. +
- Users own their data. Users control access to their data. Users decide where to store their data and which applications can read or write to your. Companies and their decentralized applications don’t keep or save your data.
- Manage Data with Gaia +
- Blockstack Storage Tutorial
- Generate an initial Blockstack application
- Review the basic application structure
- Start the server and view the application -
- Understand the application code
-
+
- Understand the generated application code @@ -485,10 +488,12 @@ and open your browser ‘http://localhost:5000’. From the root of your new ap -
-
-
Install the code by cloning it.
- --
-$ git clone git@github.com:blockstack/blockstack-todos.git -
- -
-
Change to directory to the root of the code.
- --
-$ cd blockstack-todos -
- -
-
Use yarn to install the dependencies.
- --
-$ yarn install - yarn install v1.9.2 - info No lockfile found. - ... - [4/5] 🔗 Linking dependencies... - [5/5] 📃 Building fresh packages... - success Saved lockfile. - ✨ Done in 19.90s. -
- -
-
Start the application.
- -- -
-$ npm run start -
You should see a simple application:
- - -
- -
-
Choose Sign In with Blockstack.
-
- - Copy the
authRequest
string from the URL.
- - Navigate to jwt.io. -
-
-
Paste the full token there.
- -The output should look similar to below:
- --
-{ - "jti": "3i96e3ad-0626-4e32-a316-b243154212e2", - "iat": 1533136622, - "exp": 1533140228, - "iss": "did:btc-addr:1Nh8oQTunbEQWjrL666HBx2qMc81puLmMt", - "public_keys": [ - "0362173da080c6e1dec0653fa9a3eff5f5660546e387ce6c24u04a90c2fe1fdu73" - ], - "domain_name": "http://localhost:8080", - "manifest_uri": "http://localhost:8080/manifest.json", - "redirect_uri": "http://localhost:8080/", - "version": "1.2.0", - "do_not_include_profile": true, - "supports_hub_url": true, - "scopes": [ - "store_write" - ] - } -
- - The
iss
property is a decentralized identifier ordid
. This identifies you and your name to the application. The specificdid
is abtc-addr
.
- - The Blockstack JWT implementation is different from other implementations because of the underlying cryptography we employ. There are libraries in Javascript and Ruby available on the Blockstack Github to allow you to work with these tokens. -
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Manage Data with Gaia +
- Blockstack Storage Tutorial
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Who should build on Blockstack? @@ -490,7 +486,7 @@ by asking a subdomain registrar to create one for you. -
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Search Subsystem @@ -393,7 +389,7 @@ instructions. -
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Blockstack Naming Service (BNS) -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Understand the Architecture -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- Understand Namespaces + + + + +
- Naming system feature comparison + +
- Subdomain Design and Implementation + + + + +
- How to build a Profile Search Index + +
- Choose a name + + + + +
- Creating a Namespace + + + + +
- Resolve a name + + + + +
- Register a name + + + + +
- Manage BNS Names + + + + +
- BNS Subdomains + + + + +
- BNS Forks + +
- Overview of the Atlas network + + + + +
- How Atlas Works + + + + +
- How to Use the Atlas Network + +
- Blockstack Javascript Reference + + + + +
- Blockstack CORE API + + + + +
- Blockstack Technical FAQ + +
- Blockstack Naming Service (BNS) - - - - -
- Understand the Architecture - - - - -
- Understand Namespaces - - - - -
- Naming system feature comparison - -
- Create and Launch a Namespace - - - - -
- Subdomain Design and Implementation - - - - -
- How to build a Profile Search Index - - - - -
- How to link your OpenBazaar GUID to your Blockstack ID - -
- Choose a name - - - - -
- Creating a Namespace - - - - -
- Resolve a name - - - - -
- Register a name - - - - -
- Manage BNS Names - - - - -
- BNS Subdomains - -
- BNS Forks - - - - -
- Decentralized Identifiers (DIDs) - -
- Overview of the Atlas network - - - - -
- How Atlas Works - - - - -
- How to Use the Atlas Network - -
- Blockstack Javascript Reference - - - - -
- Blockstack CORE API - - - - -
- Blockstack Technical FAQ - -
- You do not have enough balance to pay the transaction fee (which is calculated dynamically). -
- Your payment address has unconfirmed transactions. -
- You can’t connect to a Bitcoin node. -
- - - -
- Blockstack.org - - -
- Forums - - -
- GitHub - -
Understand the application code
+Understand the generated application code
-In this section, you look at the main application code which is located in the -
+public/app.css
file. Open this file now.In this section, you look at the basic application generated with the
yo +blockstack
command. The generated code contains simple authentication methods +that allow a user to log into the browser. The main application code is located +in thepublic/app.css
file. Open this file now.All of the code in the file is wrapped in an event listener.
diff --git a/_site/browser/ids-introduction.html b/_site/browser/ids-introduction.html index 52c2673e..feb11da3 100644 --- a/_site/browser/ids-introduction.html +++ b/_site/browser/ids-introduction.html @@ -17,9 +17,9 @@ - + +{"description":"Get and use a Blockstack ID","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/ids-introduction.html","headline":"Get and use a Blockstack ID","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/ids-introduction.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -127,7 +130,7 @@
--+ Get and use a Blockstack ID
@@ -145,18 +148,18 @@ -+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +Through the Blockstack browser you can create an identity. Your identity is a point of contact as you interact with others through Dapps. Others may be diff --git a/_site/browser/todo-list.html b/_site/browser/todo-list.html deleted file mode 100644 index 9f628df6..00000000 --- a/_site/browser/todo-list.html +++ /dev/null @@ -1,379 +0,0 @@ -
In this tutorial, you build the code for and run a single-page application (SPA) -with Blockstack and Vue.js. Once the application is running, you take a tour -through the applications’ Blockstack functionality. You’ll learn how it manages -authentiation using a Blockstack ID and how it stores information associated -with that ID using Blockstack Storage (Gaia).
- -Prerequisites
- -Make sure you have created at least one Blockstack ID. You’ll use this ID to Finteract with the Todo application.
- -The applicaton code relies on both the
- -npm
and theyarn
package managers. -Before you begin, verify you have these toolsnpm
using thewhich
command to -verify.- -
-$ which npm -/usr/local/bin/npm -$ which yarn -/usr/local/bin/yarn -
Install npm, install -yarn, or both as needed. You
- -While it stands alone, this tour does on the information from the Hello -Blockstack tutorial. If you haven’t worked through that -tutorial, you may want to do that before continuing.
- -Install the applicaton code and retrieve the dependencies
- -You can clone the source code with
- -git
or download and unzip the code from -the -repository. -These instructions assume you are cloning.-
-
Understand the important application files
- -The Todo application has a basic Vue.js structure. There are several configuration files but the central programming files are in the
- -src
directory:- -
- -- - - -File -Description -- - -main.js
Application initialization. -- - -App.vue
Code for handling the -authResponse
.- - -Landing.vue
Code for the initial sign on page. -- - - -Dashboard.vue
Application data storage and user sign out. -The example application runs in a node server on your local host. In the next section, you start the application and interact with it.
- --
-
Understand the sign in process
- -At startup, the Todo application detects whether the user has the Blockstack client edition -installed or not. This is done automatically by the Blockstack API, more -about this later. What the authenticator displays depends on which whether the user has installed the Blockstack Authenticator client edition or not.
- -- -
- -- - - -Client edition installed -Not installed -- - -- - If the user was logged into the Blockstack authenticator (web or client) but -did not reset it, the web application to use the current identity:
- - - -If the user chooses Deny, the Blockstack authenticator opens but the user -is not logged into the sample application.
- - - -If the login to the application is successful, the user is presented with the application:
- - - -Clicking the Sign In With Blockstack button brings up a modal that prompts -you to use an existing ID’s session, create a new ID, or reset the browser with -another ID. When Blockstack is provided an ID, it generates an ephemeral key -within the application. An ephemeral key is generated for each execution of a -key establishment process. This key is just used for the particular instance of -the application, in this case to sign a Sign In request.
- -Blockstack also generates a public key token which is sent to the authenticator -as an
- -authRequest
from the authenticator to your local blockstack-core node. -The signed authentication request is sent to Blockstack through a JSON Web -Token. The JWT is passed in via a URL query string in theauthRequest
-parameter: -https://browser.blockstack.org/auth?authRequest=j902120cn829n1jnvoa...
. To -decode the token and see what information it holds:-
-
-
- -Note:
--
-
When the blockstack-core receives the
- -authRequest
, it generates a session token and -returns an authentication response to the application. This response is similar -to theauthRequest
above in that theauthResponse
includes a private key -intended only for the application. This allows the application to encrypt data -on your personal Blockstack storage.You are now logged into the Todo application!
- -Undder the covers in the sign in code
- -Now, go to the underlying
- -blockstack-todo
code you cloned or downloaded. Sign -in and sign out is handled in each of these files:- -
- -- - - -File -Description -- - -App.vue
Handles the -authResponse
.- - -Landing.vue
Generates the -authRequest
.- - - -Dashboard.vue
Handles sign out. -The
- -src/components/Landing.vue
code calls aredirectToSignIn()
function which generates theauthRequest
and redirects the user to the Blockstack authenticator:- -
-signIn () { - const blockstack = this.blockstack - blockstack.redirectToSignIn() -} -
Once the user authenticates, the application handles the
- -authResponse
in thesrc/App.vue
file. :- -
-if (blockstack.isUserSignedIn()) { - this.user = blockstack.loadUserData().profile -} else if (blockstack.isSignInPending()) { - blockstack.handlePendingSignIn() - .then((userData) => { - window.location = window.location.origin - }) -} -
If
- -blockstack.isUserSignedIn()
is true, the user was previously signed in so Blockstack pulls the data from the browser and uses it in our application. If the check onblockstack.isSignInPending()
is true, a previousauthResponse
was sent to the application but hasn’t been processed yet. ThehandlePendingSignIn()
function processes any pending sign in.Signout is handled in
-src/components/Dashboard.vue
.- -
-signOut () { - this.blockstack.signUserOut(window.location.href) -} -
The method allows the application creator to decide where to redirect the user upon Sign Out:
- -Working with the application
- -Now trying adding a few todos using the application. For example, try making a list of applications you want to see built on top of Blockstack:
- - - -Each list is immediately stored in the Gaia Hub linked to your Blockstack ID. -For more information about the Gaia hub, see the hub -repository. You can fetch the
- -todos.json
-file you just added by opening the Javascript console and running the following -command:
- -blockstack.getFile("todos.json", { decrypt: true }).then((file) => {console.log(file)}) -
You should see a JSON with the todos you just added:
- -- -
-[ - { - "id":2, - "text":"Software package manager secured by the blockchain", - "completed":false - }, - { - "id":1, - "text":"Mutable torrents with human readable names", - "completed":false - }, - { - "id":0, - "text":"Decentralized twitter", - "completed":false - } -] -
Now, add another todo and check it off. When you fetch the newly generated file -using the Javascript console it will reflect the change look for
- -"completed":true
:- -
-[ - { - "id":3, - "text":"Blockstack Todo", - "completed":true - }, - { - "id":2, - "text":"Software package manager secured by the blockchain", - "completed":false - }, - ... -] -
Now that you have seen the application in action, dig into how it works.
- -Implementing storage
- -Now, go to the underlying
- -blockstack-todo
code you cloned or downloaded. The -application interactions with your Gaia Hub originate in the -src/components/Dashboard.vue
file. First lets see where the changes to the -Todos are processed:- -
-todos: { - handler: function (todos) { - const blockstack = this.blockstack - - // encryption is now enabled by default - return blockstack.putFile(STORAGE_FILE, JSON.stringify(todos)) - }, - deep: true -} -
Tje
- -todos
JSON object is passed in and theblockstack.putFile()
method to store it in our Gaia Hub.The code needs to read the Todo items from the storage with the
- -blockstack.getFile()
method which returns a promise:- -
-fetchData () { - const blockstack = this.blockstack - blockstack.getFile(STORAGE_FILE) // decryption is enabled by default - .then((todosText) => { - var todos = JSON.parse(todosText || '[]') - todos.forEach(function (todo, index) { - todo.id = index - }) - this.uidCount = todos.length - this.todos = todos - }) -}, -
The
- -todos
data is retrieved from the promise.Summary
- -You now have everything you need to construct complex applications complete with authentication and storage on the Decentralized Internet. Why not try coding a sample application that accesses multiple profiles.
- -If you would like to explore the Blockstack APIs, you can visit the Blockstack Core API documentation or the Blockstack JS API.
- -Go forth and build!
diff --git a/_site/changelog/index.html b/_site/changelog/index.html index 7d638358..e593f017 100644 --- a/_site/changelog/index.html +++ b/_site/changelog/index.html @@ -40,8 +40,11 @@- + + + +-
@@ -94,11 +97,11 @@
-+ Changelog
-+Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
- + + + +-
@@ -119,7 +122,7 @@
--+ Excuse our dust!
@@ -137,18 +140,18 @@ -+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +This section UNDER CONSTRUCTION please comeback and visit us soon. If you have questions about this area or suggestions for content, please feel free to post on the Blockstack Forum.
diff --git a/_site/contact/index.html b/_site/contact/index.html index ba19d258..d1529cdf 100644 --- a/_site/contact/index.html +++ b/_site/contact/index.html @@ -6,9 +6,9 @@ -Got Any Questions | Blockstack +Got Any Questions? | Blockstack - + @@ -17,7 +17,7 @@ +{"description":"Docs","author":{"@type":"Person","name":"Blockstack"},"@type":"WebPage","url":"https://zbabystack.netlify.com/contact/","headline":"Got Any Questions?","@context":"http://schema.org"} @@ -40,8 +40,11 @@- + + + +-
@@ -94,96 +97,21 @@
-diff --git a/_site/core/api-specs.md b/_site/core/api-specs.md index 80c445e3..70435abc 100644 --- a/_site/core/api-specs.md +++ b/_site/core/api-specs.md @@ -1,1719 +1,48 @@ -# Group Authorization - -## Auth Request View [GET /auth?authRequest={authRequestToken}] - -This endpoint is accessed internally by -[blockstack.js](https://github.com/blockstack/blockstack.js) to process user -sign-in requests. Applications use `blockstack.js` to direct users to sign in -or sign up. Please see the [blockstack.js -documentation](http://blockstack.github.io/blockstack.js/#authentication) on -authentication for details. - -When the user clicks the Blockstack login button in an application, the app should -redirect the user to this endpoint (via `blockstack.js`). If the user already has an -account, they will be redirected along with requested data. If the -user doesn’t have an account, the user will be presented with each of -the app’s requested permissions, then will satisfy or deny them. The -sign-in dashboard will then redirect the user back to the application -with a signed JWT. This JWT contains a signature and an API -token that the app can use for future authorization of endpoints. - -Each application specifies in advance which family of API calls it -will need to make to function properly. This list is passed along to -this endpoint when creating an application account. The -account-creation page shows this list of API endpoints and what they -do, and allows the user to line-item approve or deny them. The list -is stored to the user's profile, and returned to the application -application as part of the session JWT. The API -server will NACK requests to endpoints in API families absent from the -session JWT. - -+ Requires root authorization -+ Parameters - + authRequestToken: eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJhcHBfZG9tYWluIjoiaGVsbG9ibG9ja3N0YWNrLmNvbSIsIm1ldGhvZHMiOltdLCJhcHBfcHVibGljX2tleSI6IjAyYjk0ZjY4NDgzOGFkMjdmZTE0Nzk1MGMyNjQ1ZjRhYzhjYmU1OTJlYjYzYmQwYTQ5MWQ2YzBlYWZjNjE0YzVjMCJ9.0lLrxt8uGtB2rCKB9sb0jK1DdrrWuuuWM-nsyjvFnmjNx0XfG14Npl72w6hp9W2OHoXdPe7VuXkfvKmVNlQdeA (jwt token) - app token before signing -+ Response 200 - + Body - - {"token": - "eyJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ.eyJhcHBfZG9tYWluIjoiaGVsbG9ibG9ja3N0YWNrLmNvbSIsIm1ldGhvZHMiOltdLCJ0aW1lc3RhbXAiOjE0OTkzNDc4OTUsImV4cGlyZXMiOjE0OTk5NTI2OTUsImFwcF91c2VyX2lkIjoiMUVITmE2UTRKejJ1dk5FeEw0OTdtRTQzaWtYaHdGNmtabSIsImRldmljZV9pZCI6IjAiLCJibG9ja2NoYWluX2lkIjpudWxsLCJzdG9yYWdlIjp7ImNsYXNzZXMiOnsid3JpdGVfcHJpdmF0ZSI6WyJkaXNrIiwiczMiLCJibG9ja3N0YWNrX3NlcnZlciIsImRodCJdLCJyZWFkX2xvY2FsIjpbImRpc2siXSwicmVhZF9wdWJsaWMiOlsiczMiLCJibG9ja3N0YWNrX3Jlc29sdmVyIiwiYmxvY2tzdGFja19zZXJ2ZXIiLCJodHRwIiwiZGh0Il0sIndyaXRlX2xvY2FsIjpbImRpc2siXSwid3JpdGVfcHVibGljIjpbXSwicmVhZF9wcml2YXRlIjpbImRpc2siXX0sInByZWZlcmVuY2VzIjp7fX0sImFwaV9lbmRwb2ludCI6ImxvY2FsaG9zdDo2MjcwIiwiYXBwX3B1YmxpY19rZXlzIjpbXSwidmVyc2lvbiI6MX0.Bhne8wQpPVfkV-VLf2mrsoMmNiE2e04crgLN7OUFKEh_YWeGmqjoZU7JVSzXA5r7LCpZ9Eki5uAWlJSHk-JuCA" - } - -# Group Core Node Administration - -Blockstack Core's API module provides a set of API calls for interacting with -the node's configuration. However, most of this section is **DEPRECATED** in favor -of moving configuration state to the [Blockstack -Browser](https://github.com/blockstack/blockstack-browser). Client-side state -is managed by [blockstack.js](https://github.com/blockstack/blockstack.js). - -## Ping the node [GET /v1/node/ping] -Ping the Blockstack node to see if it's alive. -+ Public Endpoint -+ Response 200 (application/json) - + Body - - { - "status": "alive", - "version": "###version###" - } - + Schema - - { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "status", - "version" - ] - } - -## Get the node's config [GET /v1/node/config] -Returns the current configuation settings of the Blockstack node. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) for querying -client-side configuration state. -+ Requires root authorization -+ Legacy Endpoint -+ Response 200 (application/json) - + Body - - { - "bitcoind": { - "passwd": "blockstacksystem", - "port": "18332", - "regtest": "True", - "server": "localhost", - "spv_path": "/tmp/.../spv_headers.dat", - "use_https": "False", - "user": "blockstack" - }, - "blockchain-reader": { - "port": "18332", - "rpc_password": "blockstacksystem", - "rpc_username": "blockstack", - "server": "localhost", - "use_https": "False", - "utxo_provider": "bitcoind_utxo", - "version_byte": "0" - }, - "blockchain-writer": { - "port": "18332", - "rpc_password": "blockstacksystem", - "rpc_username": "blockstack", - "server": "localhost", - "use_https": "False", - "utxo_provider": "bitcoind_utxo", - "version_byte": "0" - }, - "blockstack-client": { - "advanced_mode": "true", - "api_endpoint_port": "6270", - "api_password": "...", - "blockchain_reader": "bitcoind_utxo", - "blockchain_writer": "bitcoind_utxo", - "client_version": "0.18.0.0", - "poll_interval": "300", - "port": "16264", - "queue_path": "/tmp/.../client/queues.db", - "rpc_detach": "True", - "server": "localhost", - "storage_drivers": "disk", - "storage_drivers_required_write": "disk", - } - } - - + Schema - - { - 'type': 'object', - 'patternProperties': { - '.+': { - 'type': 'string', - 'pattern': '.+', - }, - } - -## Set config field [POST /v1/node/config/{section}?{key}={value}] -Set one or more config fields in a config section. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) for client-side -configuration management. -+ Requires root authorization -+ Legacy Endpoint -+ Parameters - + section: blockstack-client (string) - configuration section - + key: server (string) - configuration variable to set - + value: node.blockstack.org (string) - value to set - -+ Response 200 (application/json) - + Body - - { 'status' : true } - - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'status': { - 'type': 'boolean' - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } - -## Delete a config field [DELETE /v1/node/config/{section}/{key}] -Delete a single field from the configuration. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) for client-side -configuration management. -+ Requires root authorization -+ Legacy Endpoint -+ Parameters - + section: blockstack-client (string) - configuration section - + key: advanced_mode (string) - configuration variable to set - -+ Response 200 (application/json) - - + Body - - { 'status' : true } - - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'status': { - 'type': 'boolean' - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } - -## Delete a config section [DELETE /v1/node/config/{section}] -Deletes a whole section from the node's configuration. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) for client-side -configuration management. -+ Requires root authorization -+ Legacy Endpoint -+ Parameters - + section: blockstack-client (string) - configuration section - -+ Response 200 (application/json) - + Body - - { 'status' : true } - - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'status': { - 'type': 'boolean' - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } - -## Get registrar state [GET /v1/node/registrar/state] -Gets the current state of the registrar. That is, the Blockstack operations -that have been submitted to the blockchain but are still waiting for -enough confirmations. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to query -the status of pending transactions. -+ Requires root authorization -+ Legacy Endpoint -+ Response 200 (application/json) - + Body - - [ - { - "block_height": 666, - "fqu": "bar.test", - "owner_address": "myaPViveUWiiZQQTb51KXCDde4iLC3Rf3K", - "payment_address": "mv1uqYWZpnap4VBSKTHfKW6noTZcNtxtCW", - "profile": { - "@type": "Person", - "accounts": [] - }, - "transfer_address": null, - "tx_hash": "b0fa7d4d79bb69cb3eccf40978514dec1620d05fe7822c550c2764c670efcd29", - "type": "preorder", - "zonefile": "$ORIGIN bar.test\n$TTL 3600\npubkey TXT \"pubkey:data:03ea5d8c2a3ba84eb17625162320bb53440557c71f7977a57d61405e86be7bdcda\"\n_file URI 10 1 \"file:///home/bar/.blockstack/storage-disk/mutable/bar.test\"\n", - "zonefile_hash": "cbe11bbbfffe415b915a7f9566748f72a0d8b2bd" - } - ] - - + Schema - - { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'block_height': { - 'type': 'integer', - 'minimum': 0, - }, - 'fqu': { - 'type': 'string', - 'pattern': r'^([a-z0-9\\-_.+]{3,37})$', - }, - 'owner_address': { - 'type': 'string', - 'pattern': r'^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - }, - 'payment_address': { - 'type': 'string', - 'pattern': r'^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - }, - 'profile': { - 'type': 'object', - 'additionalProperties': true, - 'properties': { - '@context': { - 'optional': true, - 'type': 'string' - }, - '@id': { - 'optional': true, - 'type': 'string' - }, - '@type': { - 'type': 'string' - }, - 'account': { - 'items': { - 'properties': { - '@type': { - 'type': 'string' - }, - 'identifier': { - 'optional': true, - 'type': 'string' - }, - 'proofMessage': { - 'optional': true, - 'type': 'string' - }, - 'proofSignature': { - 'optional': true, - 'type': 'string' - }, - 'proofType': { - 'optional': true, - 'type': 'string' - }, - 'proofUrl': { - 'optional': true, - 'type': 'string' - }, - 'service': { - 'optional': true, - 'type': 'string' - } - }, - 'type': 'object' - }, - 'optional': true, - 'type': 'array' - }, - 'address': { - 'optional': true, - 'properties': { - '@type': { - 'type': 'string' - }, - 'addressCountry': { - 'optional': true, - 'type': 'string' - }, - 'addressLocality': { - 'optional': true, - 'type': 'string' - }, - 'postalCode': { - 'optional': true, - 'type': 'string' - }, - 'streetAddress': { - 'optional': true, - 'type': 'string' - } - }, - 'type': 'object' - }, - 'birthDate': { - 'optional': true, - 'type': 'string' - }, - 'description': { - 'optional': true, - 'type': 'string' - }, - 'familyName': { - 'optional': true, - 'type': 'string' - }, - 'givenName': { - 'optional': true, - 'type': 'string' - }, - 'image': { - 'items': { - 'properties': { - '@type': { - 'type': 'string' - }, - 'contentUrl': { - 'optional': true, - 'type': 'string' - }, - 'name': { - 'optional': true, - 'type': 'string' - } - }, - 'type': 'object' - }, - 'optional': true, - 'type': 'array' - }, - 'knows': { - 'items': { - 'properties': { - '@id': { - 'optional': true, - 'type': 'string' - }, - '@type': { - 'type': 'string' - } - }, - 'type': 'object' - }, - 'optional': true, - 'type': 'array' - }, - 'name': { - 'optional': true, - 'type': 'string' - }, - 'taxID': { - 'optional': true, - 'type': 'string' - }, - 'website': { - 'items': { - 'properties': { - '@type': { - 'type': 'string' - }, - 'url': { - 'optional': true, - 'type': 'string' - } - }, - 'type': 'object' - }, - 'optional': true, - 'type': 'array' - }, - 'worksFor': { - 'items': { - 'properties': { - '@id': { - 'optional': true, - 'type': 'string' - }, - '@type': { - 'type': 'string' - } - }, - 'type': 'object' - }, - 'optional': true, - 'type': 'array' - } - } - }, - 'transfer_address': r'^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'tx_hash': r'^([0-9a-fA-F]+)$', - 'type': '.+', - 'zonefile': '.+', - 'zonefile_hash': r'^([0-9a-fA-F]+)$' - } - } - } - - -# Group Core Wallet Management - -This entire section is **DEPRECATED** in favor of the wallet software in -[blockstack.js](https://github.com/blockstack/blockstack.js). Names registered -with this API will need to be transferred to the Blockstack Browser. - -The Blockstack Core node manages its own wallet -- this has three keys -for payment, name ownership, and signing data (e.g., user profiles). This -wallet can be managed through these endpoints. - -## Get balance via mock-insight API [GET /insight-api/addr/{address}/balance] -Returns the integer satoshi balance of the given address, with mininum -of 1 confirmation. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to query -balances. -+ Authorization: `wallet_read` -+ Legacy Endpoint -+ Response 200 (application/json) - + Body - - 2104 - - + Schema - - { 'type' : 'integer' } - -## Get unconfirmed balance via mock-insight API [GET /insight-api/addr/{address}/unconfirmedBalance] -Returns the integer *unconfirmed* satoshi balance of the given address -(only the 0-confirmation balance). To get the min_conf=0 balance of an -address, you want *unconfirmedBalance* + *balance*. The unconfirmed -balance may be negative (if there is an unconfirmed spend). This -specification is strange, I know, but it replicates the interface of -insight-api. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to query -balances. -+ Authorization: `wallet_read` -+ Legacy Endpoint -+ Response 200 (application/json) - + Body - - -1000 - - + Schema - - { 'type' : 'integer' } - -## Get wallet payment address [GET /v1/wallet/payment_address] - -Returns core node's payment address. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to manage keys -and query UTXOs. -+ Authorization: `wallet_read` -+ Legacy Endpoint -+ Response 200 (application/json) - + Body - - { - "address": "mv1uqYWZpnap4VBSKTHfKW6noTZcNtxtCW" - } - - + Schema - - { - 'type': 'object', - 'properties': { - 'type': 'string', - 'pattern': r'^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - } - } - -## Set a specific wallet key [PUT /v1/wallet/keys/{keyname}] -This call instructs the blockstack core node to use a particular key -instead of the core node's configured wallet key. The setting of this -key is *temporary* by default, meaning that it is not written to -`~/.blockstack/wallet.json`, and on a subsequent restart, the key will -return to the original key. However, the core registrar *tracks* the -owner key used for each `PREORDER`, and stores that private key -encrypted (with `scrypt` and the core wallet password) in the -queue. When the registrar detects that the key being used for a -particular name has changed, it will recover by submitting further -transactions with the stored key. - -However, for blockstack core >= 0.14.5, the `persist_change` keyword -will instruct the core node to write the changed key to -`~/.blockstack/wallet.json`. In this mode, the node will backup the -previous wallet to `~/.blockstack/wallet.json.prior.- - Got Any Questions
- --Morbi varius in accumsan blandit, elit ligula velit, luctus mattis ante nulla nulla.
- -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
- - - ++ + -Got Any Questions?
- ++To get in touch with us…
+Please feel free to post any questions on our public form. +You can also request access to our Slack instance.
Contact Form
- -` - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to manage keys. -+ Requires root authorization -+ Legacy Endpoint -+ Parameters - + keyname: owner (string) - which key to set (one of 'owner', 'data', 'payment') - -+ Request (application/json) - + Body - - "cPo24qGYz76xSbUCug6e8LzmzLGJPZoowQC7fCVPLN2tzCUJgfcW" - -+ Request (application/json) - + Schema - - { - "type" : "object", - "properties" : { - "private_key" : { - "anyOf": [ - { - "anyOf": [ - { - "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", - "type": "string" - }, - { - "pattern": "^([0-9a-fA-F]+)$", - "type": "string" - } - ] - }, - { - "properties": { - "address": { - "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", - "type": "string" - }, - "private_keys": { - "items": { - "anyOf": [ - { - "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", - "type": "string" - }, - { - "pattern": "^([0-9a-fA-F]+)$", - "type": "string" - } - ] - }, - "type": "array" - }, - "redeem_script": { - "pattern": "^([0-9a-fA-F]+)$", - "type": "string" - } - }, - "required": [ - "address", - "redeem_script", - "private_keys" - ], - "type": "object" - } - ] - }, - "persist_change" : {"type" : "boolean"} - }, - "required" : [ "private_key" ] - } - -+ Request (application/json) - + Schema - - { - "anyOf": [ - { - "anyOf": [ - { - "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", - "type": "string" - }, - { - "pattern": "^([0-9a-fA-F]+)$", - "type": "string" - } - ] - }, - { - "properties": { - "address": { - "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", - "type": "string" - }, - "private_keys": { - "items": { - "anyOf": [ - { - "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", - "type": "string" - }, - { - "pattern": "^([0-9a-fA-F]+)$", - "type": "string" - } - ] - }, - "type": "array" - }, - "redeem_script": { - "pattern": "^([0-9a-fA-F]+)$", - "type": "string" - } - }, - "required": [ - "address", - "redeem_script", - "private_keys" - ], - "type": "object" - } - ] - } - -+ Response 200 (application/json) - + Body - - {"status": true} - - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'status': { - 'type': 'boolean' - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } - -## Get payment wallet balance [GET /v1/wallet/balance/{minconfs}] - -Fetches wallet balance, including UTXOs from transactions with at -least a specified number of confirmations. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to manage keys -and query UTXOs. -+ Authorization: `wallet_read` -+ Legacy Endpoint -+ Parameters - + minconfs: 0 (number, optional) - the minimum confs of transactions to include in balance -+ Response 200 (application/json) - + Body - - { - "balance": { - "bitcoin": 49.931727, - "satoshis": 4993172700 - } - } - - + Schema - - { - 'type': 'object', - 'properties': { - 'balance': { - 'type': 'object', - 'properties': { - 'bitcoin': { - 'type': 'number', - 'minimum': 0, - }, - 'satoshis': { - 'type': 'integer', - 'minimum': 0, - }, - }, - }, - }, - } - -## Withdraw payment wallet funds [POST /v1/wallet/balance] -Withdraw an amount (given in satoshis) from the core payment -wallet, to a particular address. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to manage keys, -generate transactions, and send transactions. -+ Authorization: `wallet_write` -+ Legacy Endpoint -+ Request (application/json) - + Body - - {'address' : 'mibZW6EBpXSTWQNQ9E4fi9hhGKYSMkjyg9', - 'amount' : 100, - 'min_confs' : 6, - 'tx_only' : false} - - + Schema - - { - 'type': 'object', - 'properties': { - 'address': { - 'type': 'string', - 'pattern': r"^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", - }, - 'amount': { - 'type': 'integer', - 'minimum': 0, - }, - 'message': { - 'type': 'string', - 'pattern': '^.{1,80}$', - } - 'min_confs': { - 'type': 'integer', - 'minimum': 0, - }, - 'tx_only': { - 'type': 'boolean' - }, - 'payment_key': { - 'anyOf': [ - { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - { - 'properties': { - 'address': { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - 'private_keys': { - 'items': { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - 'type': 'array' - }, - 'redeem_script': { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - }, - 'required': [ - 'owner' - ], - 'type': 'object' - } - ] - } - }, - 'required': [ - 'address' - ], - } - -+ Response 200 (application/json) - + Body - - { - "status": true, - "transaction_hash": "c4ee8d1993794487e6b5aca802a1793530bdff35c763ca051fbaa4b998780822", - "success": true - } - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'success': { - 'type': 'boolean' - }, - 'transaction_hash': { - 'type': 'string', - 'pattern': r'^([0-9a-fA-F]+)$', - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } - - -## Get wallet owner address [GET /v1/wallet/owner_address] -Returns core node's owner address. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to manage keys. -+ Authorization: `wallet_read` -+ Legacy Endpoint -+ Response 200 (application/json) - + Body - - { - "address": "myaPViveUWiiZQQTb51KXCDde4iLC3Rf3K" - } - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'address': { - 'type': 'string', - 'pattern': r"^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } - - -## Get wallet data public key [GET /v1/wallet/data_pubkey] -Returns the public key the core node uses for signing user data - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to manage keys. -+ Authorization: `wallet_read` -+ Legacy Endpoint -+ Response 200 (application/json) - + Body - - { - "public_key": "03ea5d8c2a3ba84eb17625162320bb53440557c71f7977a57d61405e86be7bdcda" - } - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'public_key': { - 'type': 'string', - 'pattern': r'^([0-9a-fA-F]+)$', - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } - -## Change wallet password [PUT /v1/wallet/password] -This will change the password for core's wallet. Currently not working endpoint. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to encrypt keys. -+ Authorization: `wallet_write` -+ Legacy Endpoint -+ Request (application/json) - + Body - - {'password' : '"0123456789abcdef"', - 'new_password' : "abcdef0123456789"'} - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'password': { - 'type': 'string', - }, - 'new_password': { - 'type': 'string', - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } - -## Set all wallet keys [PUT /v1/wallet/keys] - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to manage keys -in a client wallet. -+ Legacy Endpoint -+ Requires root authorization - -## Get all wallet keys [GET /v1/wallet/keys] - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to interact with -a client wallet. -+ Legacy Endpoint -+ Requires root authorization - -# Group Managing Names - -All POST, PUT, and DELETE routes in this section are **DEPRECATED** in favor of using either the [Blockstack -Browser](https://github.com/blockstack/blockstack-browser) or -[blockstack.js](https://github.com/blockstack/blockstack.js) to register and -manage names. - -All GET routes are still valid. - -## Register a name [POST /v1/names] -Registers a name, optionally to a given owner key and optionally using -a given payment key to pay for the name and transaction fees. - -This method takes a JSON blob with the following fields: - -* `name`: (required) the fully-qualified name to register. -* `zonefile`: (optional) the zone file to associate with this name. If one is - not given, a default one will be generated. -* `owner_address`: (optional) the recipient of this name. See below. -* `min_confs`: (optional) this is the minimum number of confirmations for UTXOs - that will be used for payments for this name registration. Lower values speed -up the name registration time, at the risk of blockchain reorgs or frontrunners -invalidating your name's registration. -* `tx_fee`: (optional) use this transaction fee (in satoshis) instead of - estimating one. -* `cost_satoshis`: (optional) how much to pay for this name. This value will be - sent to the name's namespace's designated burn address. If not given, the -precise value will be looked up automatically. -* `unsafe`: (optional) ignore internal safety checks when generating and sending - transactions. See below. -* `owner_key`: (optional) if given, this is the *private key* of the owner -that will receive the name. Useful for when you want to use your *personal* -node to register names to a different key, without having to bother with the -extra `NAME_TRANSFER` transaction required by passing `owner_address`. -DO NOT USE IN PUBLIC SETTINGS. -* `payment_key`: (optional) if given, this is the *private key* used to pay for - the name registration fee and transaction fees. Useful for when you want to -use your *personal* node to register names with a different payment key. DO NOT -USE IN PUBLIC SETTINGS. - -If no `owner_address` is supplied in the POSTed JSON -object, the node will register a name for the `owner_key` given in the -JSON blob. If no `owner_key` is given, then the node's current owner address -in its wallet will be used. - -If an `owner_address` is supplied, a `TRANSFER` transaction will be -broadcasted to send the name to appropriate owner. If you intend to register -many names to different addresses, it is recommended that you use one of the -wallet endpoints to set the node's owner keys to save yourself the extra -`TRANSFER` transactions (or pass `owner_key`). However, you should *ONLY* do -this if you trust the node (i.e. only do this for personal nodes). - -The `min_confs` keyword controls the minimum number of confirmations for -UTXOs used as payments for name registration. - -The `unsafe` keyword instructs the node's registrar to ignore certain -safety checks while registering the name (in particular, the registrar -will not verify that the user own's the name before issuing a -`REGISTER` and `UPDATE`). This allows the registrar to submit -operations before they have been confirmed on remote resolvers or -indexers, in this mode, the registrar will wait for 4 confirmations on -a `PREORDER`, 1 confirmation on a `REGISTER` and 1 confirmation on an -`UPDATE`. `node.blockstack.org` will correctly detect the registration -after the `UPDATE` has 6 confirmations. - -+ DEPRECATED. Registering names is now performed by [Blockstack - Browser](https://github.com/blockstack/blocktack-browser) and -[blockstack.js](https://github.com/blockstack/blockstack.js). -+ Authorization: `register` -+ Legacy Endpoint -+ Request (application/json) - + Body - - { - 'name' : 'bar.test' - } - -+ Request (application/json) - + Schema - - { - 'type': 'object', - 'properties': { - "name": { - 'type': 'string', - 'pattern': OP_NAME_PATTERN - }, - "zonefile": { - 'type': 'string', - 'maxLength': RPC_MAX_ZONEFILE_LEN, - }, - "owner_address": { - 'type': 'string', - 'pattern': OP_BASE58CHECK_PATTERN, - }, - 'min_confs': { - 'type': 'integer', - 'minimum': 0, - }, - 'tx_fee': { - 'type': 'integer', - 'minimum': 0, - 'maximum': TX_MAX_FEE, - }, - 'cost_satoshis': { - 'type': 'integer', - 'minimum': 0, - }, - 'unsafe': { - 'type': 'boolean' - }, - 'owner_key': { - 'anyOf': [ - { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - { - 'properties': { - 'address': { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - 'private_keys': { - 'items': { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - 'type': 'array' - }, - 'redeem_script': { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - }, - 'required': [ - 'owner' - ], - 'type': 'object' - } - ] - }, - 'payment_key': { - 'anyOf': [ - { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - { - 'properties': { - 'address': { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - 'private_keys': { - 'items': { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - 'type': 'array' - }, - 'redeem_script': { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - }, - 'required': [ - 'owner' - ], - 'type': 'object' - } - ] - } - }, - 'required': [ - 'name' - ], - 'additionalProperties': False, - } - -+ Response 200 (application/json) - + Body - - { - "message": "Name queued for registration. The process takes several hours. You can check the status with `blockstack info`.", - "success": true, - "transaction_hash": "6cdb9722f72875b30e1ab3de463e3960aced951f674be942b302581a9a9469a5" - } - - + Schema +# Group Core Node Administration - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'success': { - 'type': 'boolean' - }, - 'transaction_hash': { - 'type': 'string', - 'pattern': r'^([0-9a-fA-F]+)$', - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], - } +Blockstack Core's API module provides a set of API calls for interacting with +the node's configuration. Most configuration state is in the [Blockstack +Browser](https://github.com/blockstack/blockstack-browser). Client-side state +is managed by [blockstack.js](https://github.com/blockstack/blockstack.js). +## Ping the node [GET /v1/node/ping] -## Revoke name [DELETE /v1/names/{name}] -Revokes the name from Blockstack. This renders -the name unusable until it expires. Use this method if your private keys -are compromised. +Ping the Blockstack node to see if it's alive. -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) for generating -transactions. -+ Authorization: `revoke` -+ Legacy Endpoint -+ Parameters - + name: bar.test (string) - fully-qualified name ++ Public Endpoint + Response 200 (application/json) + Body - { - "message": "Name queued for revocation. The process takes ~1 hour. You can check the status with `blockstack info`.", - "success": true, - "transaction_hash": "b2745b706d7a14ce652265de103d7eaefb44a75eb658d7bb1db8868da08768b2" - } - - + Schema - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'success': { - 'type': 'boolean' - }, - 'transaction_hash': { - 'type': 'string', - 'pattern': r'^([0-9a-fA-F]+)$', - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, - }, - ], + "status": "alive", + "version": "###version###" } - - -## Transfer name [PUT /v1/names/{name}/owner] -Transfers a name to a different owner. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) for generating -transactions. -+ Authorization: `transfer` -+ Legacy Endpoint -+ Parameters - + name: bar.test (string) - name to transfer -+ Request (application/json) - + Body - - { "owner" : "mjZicz7GSJBZuGeCMEgpzr8U9w6d41DfXm" } - -+ Request (application/json) - + Schema - - - { - 'type': 'object', - 'properties': { - 'owner': { - 'type': 'string', - 'pattern': OP_BASE58CHECK_PATTERN, - }, - 'tx_fee': { - 'type': 'integer', - 'minimum': 0, - 'maximum': 500000 - }, - 'owner_key': { - 'anyOf': [ - { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - { - 'properties': { - 'address': { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - 'private_keys': { - 'items': { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - 'type': 'array' - }, - 'redeem_script': { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - }, - 'required': [ - 'owner' - ], - 'type': 'object' - } - ] - }, - 'payment_key': { - 'anyOf': [ - { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - { - 'properties': { - 'address': { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - 'private_keys': { - 'items': { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - 'type': 'array' - }, - 'redeem_script': { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - }, - 'required': [ - 'owner' - ], - 'type': 'object' - } - ] - } - }, - 'additionalProperties': False, - } - - -+ Response 202 (application/json) - + Body - - { - "message": "Name queued for transfer. The process takes ~1 hour. You can check the status with `blockstack info`.", - "success": true, - "transaction_hash": "c0d677f9ee681abbed8ca6d231bc4ece517c8c6695ce883e5e196b5395402779" - } - + Schema { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'success': { - 'type': 'boolean' - }, - 'transaction_hash': { - 'type': 'string', - 'pattern': r'^([0-9a-fA-F]+)$', - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, + "type": "object", + "properties": { + "status": { + "type": "string" }, - }, - ], - } - -## Publish zone file [POST /v1/names/zonefile] -Publish the zonefile which has _already_ been announced. -Submit either as a string with the 'zonefile' property, or -as a base64 encoded blob with the 'zonefile_b64' property. -We recommend base64-encoding your zone files in order to guarantee that they -will be JSON-encodable. - -+ DEPRECATED. -+ Request (application/json) - + Schema - - { - 'type': 'object', - 'properties': { - "zonefile": { - 'type': 'string', - }, - "zonefile_b64": { - 'type': 'string', - } - }, - 'additionalProperties': False, - } - -+ Response 200 (application/json) - + Body - - {'success': true, 'servers' : ['...']} - - -## Set zone file [PUT /v1/names/{name}/zonefile] -Sets the user's zonefile hash, and, if supplied, propagates the -zonefile. If you supply the zonefile, the hash will be calculated from -that. Ultimately, your requests should only supply one of `zonefile`, -`zonefile_b64`, or `zonefile_hash`. - -The value for `zonefile_b64` is a base64-encoded string. -New clients _should_ use the `zonefile_b64` field when specifying a zone file. -The `zonefile` field is preserved for legacy compatibility. - -This API call issues a `NAME_UPDATE` transaction for a name that is owned by -this node's wallet. That is, you can only call this API method if your node -owns the name you're updating. - -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) for generating -transactions. -+ Authorization: `update` -+ Legacy Endpoint -+ Parameters - + name: bar.test (string) - fully-qualified name -+ Request (application/json) - + Schema - - { - 'type': 'object', - 'properties': { - "zonefile": { - 'type': 'string', - }, - 'zonefile_b64': { - 'type': 'string', - 'pattern': r'^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4}))$' - }, - 'zonefile_hash': { - 'type': 'string', - 'pattern': '^([0-9a-fA-F]{20})$' - }, - 'tx_fee': { - 'type': 'integer', - 'minimum': 0, - 'maximum': 500000 - }, - 'owner_key': { - 'anyOf': [ - { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - { - 'properties': { - 'address': { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - 'private_keys': { - 'items': { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - 'type': 'array' - }, - 'redeem_script': { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - }, - 'required': [ - 'owner' - ], - 'type': 'object' - } - ] - }, - 'payment_key': { - 'anyOf': [ - { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - { - 'properties': { - 'address': { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - 'private_keys': { - 'items': { - 'anyOf': [ - { - 'pattern': '^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$', - 'type': 'string' - }, - { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - ] - }, - 'type': 'array' - }, - 'redeem_script': { - 'pattern': '^([0-9a-fA-F]+)$', - 'type': 'string' - } - }, - 'required': [ - 'owner' - ], - 'type': 'object' - } - ] - } - }, - 'additionalProperties': False, + "version": { + "type": "string" } - -+ Response 202 (application/json) - + Body - - {'success': true, 'transaction_hash' : '...'} - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'success': { - 'type': 'boolean' - }, - 'transaction_hash': { - 'type': 'string', - 'pattern': r'^([0-9a-fA-F]+)$', - }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { - 'type': 'string', - }, - }, }, - ], + "required": [ + "status", + "version" + ] } +# Group Managing Names + ## Fetch zone file [GET /v1/names/{name}/zonefile] + Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. ++ Public Endpoint + Parameters + name: bar.test (string) - fully-qualified name + Response 200 (application/json) @@ -1747,6 +76,7 @@ This method returns an error for names that have non-standard zone files. } # Group Name Querying + This family of API endpoints deals with querying name information. ## Get all names [GET /v1/names?page={page}] @@ -1810,12 +140,12 @@ Fetch a list of all names known to the node. + Body { - "address": "1QJQxDas5JhdiXhEbNS14iNjr8auFT96GP", - "blockchain": "bitcoin", - "expire_block": 489247, - "last_txid": "1edfa419f7b83f33e00830bc9409210da6c6d1db60f99eda10c835aa339cad6b", - "status": "registered", - "zonefile": "$ORIGIN muneeb.id\n$TTL 3600\n_http._tcp IN URI 10 1 \"https://blockstack.s3.amazonaws.com/muneeb.id\"\n", + "address": "1QJQxDas5JhdiXhEbNS14iNjr8auFT96GP", + "blockchain": "bitcoin", + "expire_block": 489247, + "last_txid": "1edfa419f7b83f33e00830bc9409210da6c6d1db60f99eda10c835aa339cad6b", + "status": "registered", + "zonefile": "$ORIGIN muneeb.id\n$TTL 3600\n_http._tcp IN URI 10 1 \"https://blockstack.s3.amazonaws.com/muneeb.id\"\n", "zonefile_hash": "b100a68235244b012854a95f9114695679002af9" } @@ -1826,7 +156,7 @@ Fetch a list of all names known to the node. 'properties': { 'address': { 'type': 'string', - 'pattern': r"^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", + 'pattern': r"^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", }, 'blockchain': { 'type': 'string', @@ -1864,15 +194,15 @@ Fetch a list of all names known to the node. 'pattern': '^[0-9a-fA-F]{20}$`, }, }, - { 'required': + { 'required': [ 'address', 'blockchain', 'last_txid', 'status', 'zonefile', 'zonefile_hash' ] } } - -## Name history [GET /v1/names/{name}/history?page={page}] + +## Get name history [GET /v1/names/{name}/history?page={page}] Get a history of all blockchain records of a registered name. + Public Endpoint + Subdomain aware @@ -1885,21 +215,21 @@ Get a history of all blockchain records of a registered name. { "373821": [ { - "address": "1QJQxDas5JhdiXhEbNS14iNjr8auFT96GP", - "block_number": 373821, - "consensus_hash": null, - "first_registered": 373821, - "importer": "76a9143e2b5fdd12db7580fb4d3434b31d4fe9124bd9f088ac", - "importer_address": "16firc3qZU97D1pWkyL6ZYwPX5UVnWc82V", - "last_creation_op": ";", - "last_renewed": 373821, - "name": "muneeb.id", - "name_hash128": "deb7fe99776122b77925cbf0a24ab6f8", - "namespace_block_number": 373601, - "namespace_id": "id", - "op": ";", - "op_fee": 100000.0, - "opcode": "NAME_IMPORT", + "address": "1QJQxDas5JhdiXhEbNS14iNjr8auFT96GP", + "block_number": 373821, + "consensus_hash": null, + "first_registered": 373821, + "importer": "76a9143e2b5fdd12db7580fb4d3434b31d4fe9124bd9f088ac", + "importer_address": "16firc3qZU97D1pWkyL6ZYwPX5UVnWc82V", + "last_creation_op": ";", + "last_renewed": 373821, + "name": "muneeb.id", + "name_hash128": "deb7fe99776122b77925cbf0a24ab6f8", + "namespace_block_number": 373601, + "namespace_id": "id", + "op": ";", + "op_fee": 100000.0, + "opcode": "NAME_IMPORT", "preorder_block_number": 373821, } ] @@ -1917,7 +247,7 @@ Get a history of all blockchain records of a registered name. 'properties': { 'address': { 'type': 'string', - 'pattern': r"^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", + 'pattern': r"^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", }, 'base': { 'type': 'integer', @@ -1992,7 +322,7 @@ Get a history of all blockchain records of a registered name. 'anyOf': [ { 'type': 'string', - 'pattern': r"^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", + 'pattern': r"^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$", }, { 'type': 'null', @@ -2107,7 +437,7 @@ Fetches the historical zonefile specified by the username and zone hash. + Body { - "zonefile": + "zonefile": "$ORIGIN muneeb.id\n$TTL 3600\n_http._tcp IN URI 10 1 \"https://blockstack.s3.amazonaws.com/muneeb.id\"\n" } @@ -2161,6 +491,7 @@ Retrieves a list of names owned by the address provided. } # Group Price Checks + ## Get namespace price [GET /v1/prices/namespaces/{tld}] This endpoint is used to get the price of a namespace. Anyone can create a @@ -2191,10 +522,12 @@ tutorial](https://github.com/blockstack/blockstack-core/blob/master/docs/namespa ## Get name price [GET /v1/prices/names/{name}] -This endpoint is used to get the price of a name. If you are using -a public endpoint, you should *only* rely on the `name_price` field in the -returned JSON blob. Other fields are **DEPRECATED**, since they are relevant -only for estimating the cost of registering a name (which should be done via +This endpoint is used to get the price of a name. If you are using a public +endpoint, you should *only* rely on the `name_price` field in the returned JSON +blob. + +The other fields are relevant only for estimating the cost of registering a +name. You register a name via [blockstack.js](https://github.com/blockstack/blockstack.js) or the [Blockstack Browser](https://github.com/blockstack/blockstack-browser)). @@ -2206,27 +539,27 @@ Browser](https://github.com/blockstack/blockstack-browser)). { "name_price": { - "satoshis": 100000, + "satoshis": 100000, "btc": 0.001 - }, - "total_tx_fees": 519209, + }, + "total_tx_fees": 519209, "register_tx_fee": { - "satoshis": 159110, + "satoshis": 159110, "btc": 0.0015911 - }, + }, "preorder_tx_fee": { - "satoshis": 163703, + "satoshis": 163703, "btc": 0.00163703 - }, + }, "warnings": [ "Insufficient funds; fees are rough estimates." - ], + ], "total_estimated_cost": { - "satoshis": 619209, + "satoshis": 619209, "btc": 0.00619209 - }, + }, "update_tx_fee": { - "satoshis": 196396, + "satoshis": 196396, "btc": 0.00196396 } } @@ -2292,7 +625,9 @@ Browser](https://github.com/blockstack/blockstack-browser)). } # Group Blockchain Operations + ## Get consensus hash [GET /v1/blockchains/{blockchainName}/consensus] + Get the current Blockstack consensus hash on a blockchain. + Public Endpoint + Parameters @@ -2316,8 +651,9 @@ Get the current Blockstack consensus hash on a blockchain. }, } -## Get number of names on blockchain [GET /v1/blockchains/{blockchainName}/name_count{?all}] -Get the number of names on a blockchain. +## Get total names on Blockchain [GET /v1/blockchains/{blockchainName}/name_count{?all}] + +Get a count of the number of names on a blockchain. + Public Endpoint + Parameters + blockchainName: bitcoin (string) - the given blockchain @@ -2396,7 +732,9 @@ Get the number of subdomains on a blockchain. ## Get operations in block [GET /v1/blockchains/{blockchainName}/operations/{blockHeight}] + Get the Blockstack operations in a given block ++ Public Endpoint + Parameters + blockchainName : bitcoin (string) - the given blockchain + blockHeight : 462592 (integer) - the block height @@ -2723,202 +1061,9 @@ Get the Blockstack operations in a given block } ] -## Get pending transactions [GET /v1/blockchains/{blockchainName}/pending] -Get the current transactions that the node has issued and are still pending. -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to query the -blockchain. -+ Public Endpoint -+ Parameters - + blockchainName : bitcoin (string) - the given blockchain -+ Response 200 (application/json) - + Body - - { - "queues": {} - } - - + Schema - - { - 'type': 'object', - 'properties': { - 'preorder': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': { 'type': 'string', 'pattern': '^([a-z0-9\-_.+]{3,37})$' }, - 'tx_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'confirmations': { 'type': 'integer', 'minimum': 0 }, - }, - }, - }, - 'register': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': { 'type': 'string', 'pattern': '^([a-z0-9\-_.+]{3,37})$' }, - 'tx_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'confirmations': { 'type': 'integer', 'minimum': 0 }, - }, - }, - }, - 'update': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': { 'type': 'string', 'pattern': '^([a-z0-9\-_.+]{3,37})$' }, - 'tx_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'confirmations': { 'type': 'integer', 'minimum': 0 }, - }, - }, - }, - 'transfer': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': { 'type': 'string', 'pattern': '^([a-z0-9\-_.+]{3,37})$' }, - 'tx_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'confirmations': { 'type': 'integer', 'minimum': 0 }, - }, - }, - }, - 'renew': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': { 'type': 'string', 'pattern': '^([a-z0-9\-_.+]{3,37})$' }, - 'tx_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'confirmations': { 'type': 'integer', 'minimum': 0 }, - }, - }, - }, - 'revoke': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': { 'type': 'string', 'pattern': '^([a-z0-9\-_.+]{3,37})$' }, - 'tx_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'confirmations': { 'type': 'integer', 'minimum': 0 }, - }, - }, - }, - 'name_import': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': { 'type': 'string', 'pattern': '^([a-z0-9\-_.+]{3,37})$' }, - 'tx_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'confirmations': { 'type': 'integer', 'minimum': 0 }, - }, - }, - }, - } - } - -## Get unspent outputs [GET /v1/blockchains/{blockchainName}/{address}/unspent] -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to query the -blockchain. -+ Authorization: `blockchain` -+ Parameters - + blockchainName : bitcoin (string) - the given blockchain - + address : 1GuKR3nJi2VH3E1ZSPvuX8nAu3jNnr7xzq (string) - the address to get unspents for -+ Response 200 (application/json) - + Body - - [ - { - "confirmations": 18, - "out_script": "76a914ae6ee3760fccb8225541ca89f08c927930adf97b88ac", - "outpoint": { - "hash": "977d3a025790e2cbdb50f63761872f36e78fbb9c53d515cb4c53155a1964932d", - "index": 1 - }, - "transaction_hash": "977d3a025790e2cbdb50f63761872f36e78fbb9c53d515cb4c53155a1964932d", - "value": 76779 - } - ] - - + Schema - - { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'confirmations': { 'type': 'integer', 'minimum': 0 }, - 'out_script': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'outpoint': { - 'type': 'object', - 'properties': { - 'hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'index': { 'type': 'integer', 'minimum': 0 }, - }, - }, - 'transaction_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - 'value': { 'type': 'integer', 'minimum': 0 }, - }, - }, - } - -## Broadcast transaction [POST /v1/blockchains/{blockchainName}/txs] -+ DEPRECATED. Blockstack clients should use - [blockstack.js](https://github.com/blockstack/blockstack.js) to broadcast -transactions. -+ Authorization: `blockchain` -+ Parameters - + blockchainName : bitcoin (string) - the blockchain to broadcast on -+ Request (application/json) - + Schema - - { - 'type': 'object', - 'properties': { - 'tx': { - 'type': 'string', - 'pattern': OP_HEX_PATTERN, - }, - }, - 'additionalProperties': False, - 'required': [ - 'tx' - ], - } - -+ Response 200 (application/json) - + Body - - { 'status' : True, 'tx_hash' : '...' } - - + Schema - - { - 'anyOf': [ - { - 'type': 'object', - 'properties': { - 'status': { 'type': 'boolean' }, - 'tx_hash': { 'type': 'string', 'pattern': '^[0-9a-fA-F]+$' }, - }, - }, - { - 'type': 'object', - 'properties': { - 'error': { 'type': 'string' }, - }, - }, - ] - } # Group Namespace Operations + ## Get all namespaces [GET /v1/namespaces] + Public Endpoint + Response 200 (application/json) @@ -2927,10 +1072,11 @@ transactions. { "namespaces": [ ".id" - ] + ] } ## Get namespace names [GET /v1/namespaces/{tld}/names?page={page}] + Fetch a list of names from the namespace. + Public Endpoint + Parameters @@ -2940,15 +1086,17 @@ Fetch a list of names from the namespace. + Response 200 (application/json) + Body - [ "aldenquimby.id", "aldeoryn.id", - "alderete.id", "aldert.id", + [ "aldenquimby.id", "aldeoryn.id", + "alderete.id", "aldert.id", "aldi.id", "aldighieri.id", ... ] # Group Resolver Endpoints + ## Lookup User [GET /v1/users/{username}] -Lookup and resolver a user's profile. Defaults to the `id` namespace. -Note that [blockstack.js](https://github.com/blockstack/blockstack.js) does -*not* rely on this endpoint. + +Lookup and resolver a user's profile. Defaults to the `id` namespace. Note that +[blockstack.js](https://github.com/blockstack/blockstack.js) does *not* rely on +this endpoint. + Public Only Endpoint + Subdomain Aware @@ -2956,106 +1104,20 @@ Note that [blockstack.js](https://github.com/blockstack/blockstack.js) does + Parameters + username: fred (string) - username to lookup + Response 200 (application/json) + + Body - - - { - "fred.id": { - "owner_address": "1CER5u4QXuqffHjHKrU76iMCsqtJLM5VHu", - "profile": { - "@context": "http://schema.org", - "@type": "Person", - "account": [ - { - "@type": "Account", - "identifier": "fredwilson", - "placeholder": false, - "proofType": "http", - "proofUrl": "https://twitter.com/fredwilson/status/943066895422455809", - "service": "twitter" - } - ], - "description": "I am a VC", - "image": [ - { - "@type": "ImageObject", - "contentUrl": "https://gaia.blockstack.org/hub/1CER5u4QXuqffHjHKrU76iMCsqtJLM5VHu/0/avatar-0", - "name": "avatar" - } - ], - "name": "Fred Wilson" - }, - "public_key": "026c94d1897fa148fa6401247a339b55abd869a3d562fdae8a7fcb9a11f1f846f3", - "verifications": [ - { - "identifier": "fredwilson", - "proof_url": "https://twitter.com/fredwilson/status/943066895422455809", - "service": "twitter", - "valid": true - } - ], - "zone_file": { - "$origin": "fred.id", - "$ttl": 3600, - "uri": [ - { - "name": "_http._tcp", - "priority": 10, - "target": "https://gaia.blockstack.org/hub/1CER5u4QXuqffHjHKrU76iMCsqtJLM5VHu/0/profile.json", - "weight": 1 - } - ] - } - } - } - + [ "aldenquimby.id", "aldeoryn.id", + "alderete.id", "aldert.id", + "aldi.id", "aldighieri.id", ... ] ## Profile Search [GET /v1/search?query={query}] Searches for a profile using a search string. + Public Only Endpoint + Parameters - + query: wenger (string) - the search query + + query: wenger (string) - the search query + Response 200 (application/json) + Body - { - "results": [ - { - "fullyQualifiedName": "albertwenger.id", - "username": "albertwenger", - "profile": { - "@type": "Person", - "account": [ - { - "@type": "Account", - "identifier": "albertwenger", - "proofType": "http", - "service": "twitter" - }, - { - "@type": "Account", - "identifier": "albertwenger", - "proofType": "http", - "service": "facebook" - }, - { - "@type": "Account", - "identifier": "albertwenger", - "proofType": "http", - "service": "github" - }, - { - "@type": "Account", - "identifier": "1QHDGGLEKK7FZWsBEL78acV9edGCTarqXt", - "role": "payment", - "service": "bitcoin" - } - ], - "address": { - "@type": "PostalAddress", - "addressLocality": "New York" - }, - "description": "VC at USV.com", - ... - } - + [ "aldenquimby.id", "aldeoryn.id", + "alderete.id", "aldert.id", + "aldi.id", "aldighieri.id", ... ] diff --git a/_site/core/atlas/howitworks.html b/_site/core/atlas/howitworks.html index 49c3fe8f..69d911a0 100644 --- a/_site/core/atlas/howitworks.html +++ b/_site/core/atlas/howitworks.html @@ -17,9 +17,9 @@ - + +{"description":"How Atlas Works","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/howitworks.html","headline":"How Atlas Works","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/howitworks.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@ - + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ How Atlas Works
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +Atlas was designed to overcome the structural weaknesses inherent to all distributed hash tables. In particular, it uses an unstructured peer network to @@ -482,7 +478,7 @@ which ones are missing which chunks can be found -
+ - - +{"description":"How to Use the Atlas Network","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/howtouse.html","headline":"How to Use the Atlas Network","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/howtouse.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ How to Use the Atlas Network
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +This section teaches you how to use the Atlas network, it contains the following sections:
@@ -416,7 +412,7 @@ failures. -+ - - +{"description":"Overview of the Atlas network","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/overview.html","headline":"Overview of the Atlas network","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/overview.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Overview of the Atlas network
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +This document describes the Atlas network, a peer-to-peer content-addressed storage system whose chunks’ hashes are announced on a public blockchain. Atlas @@ -470,7 +466,7 @@ as part of the protocol.
-+ - - +{"description":"Developer FAQs","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/faq_developer.html","headline":"Developer FAQs","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/faq_developer.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -114,7 +117,7 @@
-
--+ Developer FAQs
@@ -176,18 +179,18 @@ -+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +These FAQs are intended for developers of Blockstack.
diff --git a/_site/core/faq_technical.html b/_site/core/faq_technical.html index 1b8ed895..4379224a 100644 --- a/_site/core/faq_technical.html +++ b/_site/core/faq_technical.html @@ -17,9 +17,9 @@ - + +{"description":"Blockstack Technical FAQ","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/faq_technical.html","headline":"Blockstack Technical FAQ","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/faq_technical.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Blockstack Technical FAQ
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 ++ - - +{"description":"Blockstack API","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/install-api.html","headline":"Blockstack API","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/install-api.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Blockstack API
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 ++ - - +{"description":"Installing Memcached","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/memcached.html","headline":"Installing Memcached","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/memcached.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Installing Memcached
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +The Blockstack API optionally uses memcached and pylibmc for scaling read-only calls. If you want to enable this functionality then you should have memcached @@ -329,7 +325,7 @@ $ echo stats | nc localhost 11211 -
+ - - +{"description":"Understand the Architecture","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/architecture.html","headline":"Understand the Architecture","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/architecture.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Understand the Architecture
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +The BNS node is the heart of the system. It is responsible for building up and replicating global name state.
@@ -379,7 +375,7 @@ the reader to client-specific documentation for registering and managing names.< -+ - - +{"description":"Naming system feature comparison","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/comparison.html","headline":"Naming system feature comparison","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/comparison.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Naming system feature comparison
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +BNS is not the only naming system in wide-spread use, nor is it the only decentralized naming system that implements human-readable, globally-unique, and @@ -516,7 +512,7 @@ slightly more valuable.
-+ - - +{"description":"Creating a Namespace","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/creationhowto.html","headline":"Creating a Namespace","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/creationhowto.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Creating a Namespace
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +There are four steps to creating a namespace:
@@ -329,9 +325,9 @@ create the same namespace, the one that successfully confirms both the do this, then the namespace they created disappears (along with all the names they imported). -Developers wanting to create their own namespaces should read the namespace +
Developers wanting to create their own namespaces should read the namespace creation document. It is highly recommended that -developers follow this tutorial closely, given the large amount of +developers individula support to create your own namespace, given the large amount of cryptocurrency at stake.
@@ -348,7 +344,7 @@ cryptocurrency at stake. -+ - - +{"description":"Decentralized Identifiers (DIDs)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/did.html","headline":"Decentralized Identifiers (DIDs)","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/did.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Decentralized Identifiers (DIDs)
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +BNS nodes are compliant with the emerging Decentralized Identity Foundation protocol @@ -390,7 +386,7 @@ second is encoded with version byte 63).
-+ - - +{"description":"BNS Forks","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/forks.html","headline":"BNS Forks","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/forks.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ BNS Forks
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +BNS effectively uses a public blockchain to store a database log. A BNS peer bootstraps itself by downloading and replaying the database log from the @@ -421,7 +417,7 @@ to the fork-set with the highest cumulative burn.
-+ - - +{"description":"Blockstack Naming Service (BNS)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/introduction.html","headline":"Blockstack Naming Service (BNS)","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/introduction.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Blockstack Naming Service (BNS)
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +This document gives an overview of how the Blockstack Naming Service work. This section introduces you to BNS and explains the following concepts:
@@ -503,7 +499,7 @@ between these name objects is presented below: -+ - - +{"description":"Manage BNS Names","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/manage.html","headline":"Manage BNS Names","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/manage.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Manage BNS Names
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +This section teaches you how to manage your namespace, it contains the following sections:
@@ -411,7 +407,7 @@ document for details on how to construct this transaction. -+ - - +{"description":"Understand Namespaces","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/namespaces.html","headline":"Understand Namespaces","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/namespaces.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -99,158 +102,151 @@
+ -Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
Overview
-How to use BNS
--
-
-
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
Tutorials & Cookbooks
+ +-
+
+
+
+
How to use BNS
+ +-
+
+
+
+
+
Atlas
+ +-
+
+
+
+
+
Reference
+ +-
+
+
+
+
+
-+ Understand Namespaces
+@@ -262,18 +258,18 @@ --+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +Namespaces are the top-level naming objects in BNS.
@@ -425,7 +421,7 @@ between these name objects is presented below: -+ - - - - - - - - - - - - - - - - -- - - - - -- ----- - -- ---- -- --Overview
--
-
-
-
-
-
Tutorials & Cookbooks
--
-
-
-
-
-
How to use BNS
--
-
-
-
-
-
Forks and Dids
--
-
-
-
-
-
Atlas
--
-
-
-
-
-
Reference
--
-
-
-
-
-
- -- -- - - - - -How to link your OpenBazaar GUID to your Blockstack ID
- - - -- - - - - - - - - - -- -- - - - - Edit this page on Github - w Sep 10, 2018 - - -- - - -- -If you don’t have the Blockstack CLI. Download and install it first. Instructions are here. The rest of this tutorial assumes that you’ve already registered a name using the Blockstack CLI.
- -Step 1: Advanced Mode
- -The first step is to activate “advanced mode” in the CLI. The command to do so is:
- -- -
-$ blockstack set_advanced_mode on -
Step 2: Add an OpenBazaar Account
- -The second step is to create an OpenBazaar account for your profile (the Onename app also enabled to link your OpenBazaar GUID). The command to do so is:
- -- -
-$ blockstack put_account "<BLOCKSTACK ID>" "openbazaar" "<YOUR OB GUID>" "<URL TO YOUR STORE>" -
The URL can be any valid URL; it won’t be used by OpenBazaar. Here’s an example, using the name
- -testregistration001.id
and the GUID0123456789abcdef
:- -
-$ blockstack put_account "testregistration001.id" "openbazaar" "0123456789abcdef" "https://bazaarbay.org/@testregistration001" -
The update should be instantaneous. You can verify that your store is present with
- -list_accounts
:- -
-$ blockstack list_accounts "testregistration001.id" - { - "accounts": [ - { - "contentUrl": "https://bazaarbay.org/@testregistration001.id", - "identifier": "0123456789abcdef", - "service": "openbazaar" - } - ] - } -
Troubleshooting
- -Common problems you might encounter.
- -Profile is in legacy format
- -If you registered your blockstack ID before spring 2016, there’s a chance that your profile is still in a legacy format. It will get migrated to the new format automatically if you update your profile on the Onename app. However, you have to do this manually with the CLI.
- -To do so, the command is:
-- -
-$ blockstack migrate <YOUR BLOCKSTACK ID> -
It will take a little over an hour to complete, but once finished, you’ll be able to manage your accounts with the above commands (and do so with no delays).
- -Failed to broadcast update transaction
- -This can happen during a
-migrate
for one of a few reasons:-
-
To determine what’s going on, you should try the command again by typing
- - - -BLOCKSTACK_DEBUG=1 blockstack ...
instead ofblockstack...
.
- - - - - - --- - - -Related Articles
- - - - - --
-
-
-- - - - - - - - - - - - - - -- - - ---
-
-
- + + + +-
@@ -127,7 +130,7 @@
--+ Users Frequently Asked Questions (FAQ)
@@ -145,18 +148,18 @@ -+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +This is a general FAQ intended for users of decentralized applications. If you are a developer, refer to the [technical FAQ].
@@ -203,7 +206,7 @@ For developers, Blockstack develops an ecosystem of software and services that dWhere is my identity kept?
diff --git a/_site/browser/hello-blockstack.html b/_site/browser/hello-blockstack.html index b8b1629f..c4b69866 100644 --- a/_site/browser/hello-blockstack.html +++ b/_site/browser/hello-blockstack.html @@ -17,9 +17,9 @@ - + +{"description":"Hello, Blockstack Tutorial","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/hello-blockstack.html","headline":"Hello, Blockstack Tutorial","dateModified":"2018-09-12T18:20:57-07:00","datePublished":"2018-09-12T18:20:57-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/hello-blockstack.html"},"@context":"http://schema.org"} @@ -42,8 +42,11 @@- + + + +-
@@ -114,7 +117,7 @@
-
--+ Hello, Blockstack Tutorial
@@ -176,20 +179,20 @@ -+ Edit this page on Github - w Sep 10, 2018 + w Sep 12, 2018 +-In this tutorial, you build a simple application on Blockstack. The application +
In this tutorial, you generate a simple application on Blockstack. The application is a single-page application (SPA) that runs completely client-side. The application has no backend API to talk to, other than the identity and storage API that the user provides. In this sense, the application is a completely @@ -201,7 +204,7 @@ decentralized, server-less application. You work through the following sections:
-
-
Site tags
diff --git a/_site/404.html b/_site/404.html index 37a14f52..810f89dc 100644 --- a/_site/404.html +++ b/_site/404.html @@ -40,8 +40,11 @@-
@@ -94,11 +97,11 @@
Feeling Lost
-The page you are looking for cannot be found. Please navigate to homepage.
-
@@ -114,7 +117,7 @@
-
Android SDK Tutorial (Pre-release)
@@ -176,18 +179,18 @@ -This tutorial is written for readers who are new to either or both Blockstack and Android to create a decentralized application. It contains the following diff --git a/_site/browser/README.md b/_site/browser/README.md deleted file mode 100644 index 787392e1..00000000 --- a/_site/browser/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Tutorials - -**Note: This data is being digested by blockstack.org. Do not change the formatting of this list unless you first make an adjustment to the code on blockstack.org.** - -### Multi-player Storage - -- urlSlug: multi-player-storage -- image: /images/tutorials/multi-player-storage.png -- description: Build a decentralized micro-blogging app using multi-player Gaia storage. - -### Managing Data with Gaia - -- urlSlug: managing-data-with-gaia -- image: /images/tutorials/managing-data-with-gaia.png -- description: This series will focus on teaching you to think like a Blockstack developer working with Gaia. - -### Blockstack Todo - -- urlSlug: todo-list -- image: /images/tutorials/todo-list.png -- description: Walk through creating a basic Todo application with Blockstack. Learn about Sign In flow and Gaia storage. - -### Hello Blockstack - -- urlSlug: hello-blockstack -- image: /images/tutorials/hello-blockstack.jpg -- description: Build a simple single-page JavaScript application that runs completely client-side without any servers. diff --git a/_site/browser/multi-player-storage.html b/_site/browser/blockstack_storage.html similarity index 90% rename from _site/browser/multi-player-storage.html rename to _site/browser/blockstack_storage.html index 7e95e304..8381d07d 100644 --- a/_site/browser/multi-player-storage.html +++ b/_site/browser/blockstack_storage.html @@ -6,20 +6,20 @@ -
-
@@ -114,7 +117,7 @@
-
Manage Data with Gaia
+Blockstack Storage Tutorial
@@ -176,18 +179,18 @@ -In this tutorial, you build a micro-blogging application using multi-player Gaia storage. Gaia is Blockstack’s decentralized high-performance storage @@ -1075,8 +1078,8 @@ about Blockstack. To use a working version of the app go here.
-
@@ -127,7 +130,7 @@
Use the Blockstack Browser
@@ -145,18 +148,18 @@ -The Blockstack Browser gives users the ability to explore and use the decentralized applications (dapps). The decentralized applications are a new way @@ -237,7 +240,7 @@ page.
Installation requires that you have macOS High Sierra 10.12 or higher. Do the following to install:
-
-