blog/categories/tutorials/index.html

709 lines
28 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head prefix="og: http://ogp.me/ns#">
<meta charset="utf-8">
<title>Embark Blog</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Canonical links -->
<link rel="canonical" href="https://blog.embarklabs.io/categories/tutorials/index.html">
<!-- Alternative links -->
<!-- Icon -->
<meta name="msapplication-TileColor" content="#080E1A">
<link rel="icon" type="image/png" href="/assets/images/favicon-16.png" sizes="16x16" />
<link rel="icon" type="image/png" href="/assets/images/favicon-32.png" sizes="32x32" />
<link rel="apple-touch-icon" sizes="76x76" href="/assets/images/apple-touch-icon-60x60-precomposed.png">
<link rel="apple-touch-icon" sizes="76x76" href="/assets/images/apple-touch-icon-76x76-precomposed.png">
<link rel="apple-touch-icon" sizes="120x120" href="/assets/images/apple-touch-icon-120x120-precomposed.png">
<link rel="apple-touch-icon" sizes="152x152" href="/assets/images/apple-touch-icon-152x152-precomposed.png">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon-precomposed.png">
<link rel="apple-touch-icon" href="/assets/images/apple-touch-icon-precomposed.png">
<!-- CSS -->
<link rel="stylesheet" href="/css/embark.css">
<!-- endbuild -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
<!-- RSS -->
<link rel="alternate" href="/atom.xml" title="Embark Blog">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.4/styles/dracula.min.css">
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
!function(root, factory) {
"function" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set
define([], function() {
return root.svg4everybody = factory();
}) : "object" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory() : root.svg4everybody = factory();
}(this, function() {
/*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */
function embed(parent, svg, target) {
// if the target exists
if (target) {
// create a document fragment to hold the contents of the target
var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute("viewBox") && target.getAttribute("viewBox");
// conditionally set the viewBox on the svg
viewBox && svg.setAttribute("viewBox", viewBox);
// copy the contents of the clone into the fragment
for (// clone the target
var clone = target.cloneNode(!0); clone.childNodes.length; ) {
fragment.appendChild(clone.firstChild);
}
// append the fragment into the svg
parent.appendChild(fragment);
}
}
function loadreadystatechange(xhr) {
// listen to changes in the request
xhr.onreadystatechange = function() {
// if the request is ready
if (4 === xhr.readyState) {
// get the cached html document
var cachedDocument = xhr._cachedDocument;
// ensure the cached html document based on the xhr response
cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(""),
cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item
xhr._embeds.splice(0).map(function(item) {
// get the cached target
var target = xhr._cachedTarget[item.id];
// ensure the cached target
target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)),
// embed the target into the svg
embed(item.parent, item.svg, target);
});
}
}, // test the ready state change immediately
xhr.onreadystatechange();
}
function svg4everybody(rawopts) {
function oninterval() {
// while the index exists in the live <use> collection
for (// get the cached <use> index
var index = 0; index < uses.length; ) {
// get the current <use>
var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute("xlink:href") || use.getAttribute("href");
if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)),
svg && src) {
if (polyfill) {
if (!opts.validate || opts.validate(src, svg, use)) {
// remove the <use> element
parent.removeChild(use);
// parse the src and get the url and id
var srcSplit = src.split("#"), url = srcSplit.shift(), id = srcSplit.join("#");
// if the link is external
if (url.length) {
// get the cached xhr request
var xhr = requests[url];
// ensure the xhr request exists
xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open("GET", url), xhr.send(),
xhr._embeds = []), // add the svg and id as an item to the xhr embeds list
xhr._embeds.push({
parent: parent,
svg: svg,
id: id
}), // prepare the xhr ready state change event
loadreadystatechange(xhr);
} else {
// embed the local id into the svg
embed(parent, svg, document.getElementById(id));
}
} else {
// increase the index when the previous value was not "valid"
++index, ++numberOfSvgUseElementsToBypass;
}
}
} else {
// increase the index when the previous value was not "valid"
++index;
}
}
// continue the interval
(!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);
}
var polyfill, opts = Object(rawopts), newerIEUA = /\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/, webkitUA = /\bAppleWebKit\/(\d+)\b/, olderEdgeUA = /\bEdge\/12\.(\d+)\b/, edgeUA = /\bEdge\/.(\d+)\b/, inIframe = window.top !== window.self;
polyfill = "polyfill" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;
// create xhr requests object
var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName("use"), numberOfSvgUseElementsToBypass = 0;
// conditionally start the interval if the polyfill is active
polyfill && oninterval();
}
function getSVGAncestor(node) {
for (var svg = node; "svg" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}
return svg;
}
return svg4everybody;
});
svg4everybody();
</script>
<meta name="description" content="Embark is a simple &amp; powerful framework for decentralized applications">
<meta property="og:type" content="website">
<meta property="og:title" content="Embark Blog">
<meta property="og:url" content="https://blog.embarklabs.io/categories/tutorials/index.html">
<meta property="og:site_name" content="Embark Blog">
<meta property="og:description" content="Embark is a simple &amp; powerful framework for decentralized applications">
<meta property="og:locale" content="en_US">
<meta property="article:author" content="Embark">
<meta name="twitter:card" content="summary">
</head>
<body>
<header role="banner" class="c-header c-header--compact">
<span class="c-header__background"></span>
<div class="o-container c-header__content">
<div class="c-header__top">
<a href="https://embarklabs.io" title="Embark" class="c-logo c-logo--negative">Embark</a>
<nav role="navigation" class="c-navigation">
<div class="c-navigation__header">
<a href="https://embarklabs.io" title="Embark" class="c-logo">Embark</a>
<button class="c-navigation__close u-text-light" title="Close menu">
<svg class="c-icon c-icon--xs"><use xlink:href="/../assets/icons/symbols.svg#icon-close"></use></svg>
</button>
</div>
<div class="c-navigation__body" style="">
<ul class="c-navigation__list">
<li class="c-navigation__item">
<a href="https://blog.embarklabs.io" class="c-navigation__anchor" title="Blog">Blog</a>
</li>
<li class="c-navigation__item">
<a href="https://framework.embarklabs.io" class="c-navigation__anchor" title="Embark Framework">Embark</a>
</li>
<li class="c-navigation__item">
<a href="https://subspace.embarklabs.io" class="c-navigation__anchor" title="Subspace">Subspace</a>
</li>
<li class="c-navigation__item">
<a href="https://framework.embarklabs.io/docs/cockpit_introduction.html" class="c-navigation__anchor" title="Cockpit">Cockpit</a>
</li>
</ul>
</div>
</nav>
<div class="o-flex o-flex-center">
<form action="" class="o-flex__item u-hidden-until-large" style="">
<input type="search" placeholder="Search" id="search-input">
</form>
<div class="o-flex__item">
<ul class="o-flex o-flex-center">
<li class="o-flex__item">
<a href="https://github.com/embarklabs/embark" title="Github" target="_blank" class="u-link-ghost">
<svg class="c-icon"><use xlink:href="/../assets/icons/symbols.svg#icon-github"></use></svg>
</a>
</li>
<li class="o-flex__item">
<a href="https://twitter.com/EmbarkProject" title="Twitter" target="_blank">
<svg class="c-icon"><use xlink:href="/../assets/icons/symbols.svg#icon-twitter"></use></svg>
</a>
</li>
<li class="o-flex__item u-hidden-large-up">
<button type="button"class="c-navigation__trigger u-link-ghost" title="Open menu">
<svg class="c-icon"><use xlink:href="/../assets/icons/symbols.svg#icon-navigation-menu"></use></svg>
</button>
</li>
</ul>
</div>
</div>
</div>
<div class="c-quick-search o-distance-m u-hidden-large-up">
<input type="search" id="inp-search" placeholder="Search">
</div>
<div class="c-header__body">
<h1 class="c-title u-text-ghost">Categories: Tutorials</h1>
<p class="c-subtitle o-distance-s">&nbsp;</p>
<div class="o-buttonbar">
<a href="/news" class="c-button o-buttonbar__item" title="&larr; Back to blog">&larr; Back to blog</a>
</div>
</div>
</div>
</header>
<main role="main">
<section class="o-container o-distance-m">
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/eWASM-header.png)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2020/02/24/wasm-ewasm-what-and-why/" title="Read more"
class="u-link-uniform">WebAssembly / eWasm What, and Why?</a>
</h3>
<p class="c-meta u-text-light">24th February 2020</p>
<p class="c-box__subtitle u-text-light">Apparently; WebAssembly became 'the fourth language for the web' a couple of years ago.. Find out what that means for the Decentralised Web (DApps & eWasm) in this article.</p>
<p class="c-box__footer">
<a href="/news/2020/02/24/wasm-ewasm-what-and-why/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/web-security_banner.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2020/01/30/dapp-frontend-security/" title="Read more"
class="u-link-uniform">DApp Frontend Security</a>
</h3>
<p class="c-meta u-text-light">30th January 2020</p>
<p class="c-box__subtitle u-text-light">Security is not just a consideration for DApp Backend Developers, but for Frontend Developers too. In this article we'll cover a comprehensive security strategy for DApp Frontends.</p>
<p class="c-box__footer">
<a href="/news/2020/01/30/dapp-frontend-security/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/web3-article-header.png)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/12/09/web3-what-are-your-options/" title="Read more"
class="u-link-uniform">Introduction to Web3 - What Are Your Options?</a>
</h3>
<p class="c-meta u-text-light">9th December 2019</p>
<p class="c-box__subtitle u-text-light">Web3.js is a collection of APIs giving us the ability to interact with, and send commands to, the Ethereum Network from a JavaScript frontend. In this article, I will go over the basics of what and why we need Web3.js.</p>
<p class="c-box__footer">
<a href="/news/2019/12/09/web3-what-are-your-options/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/nim-crystal-header-img_NEW.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/11/28/nim-vs-crystal-part-3-cryto-dapps-p2p/" title="Read more"
class="u-link-uniform">Nim vs Crystal - Part 3 - Crypto, DApps & P2P</a>
</h3>
<p class="c-meta u-text-light">28th November 2019</p>
<p class="c-box__subtitle u-text-light">Crystal and Nim go head-to-head to figure out the best modern, low-level programming language! In part 3; Crypto, P2P & DApps are explored.</p>
<p class="c-box__footer">
<a href="/news/2019/11/28/nim-vs-crystal-part-3-cryto-dapps-p2p/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/nim-crystal-header-img_NEW.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/11/21/nim-vs-crystal-part-2-threading-tooling/" title="Read more"
class="u-link-uniform">Nim vs Crystal - Part 2 - Threading & Tooling</a>
</h3>
<p class="c-meta u-text-light">21st November 2019</p>
<p class="c-box__subtitle u-text-light">Crystal and Nim go head-to-head to figure out the best modern, low-level programming language! In part 2, Threading & Tooling are reviewed.</p>
<p class="c-box__footer">
<a href="/news/2019/11/21/nim-vs-crystal-part-2-threading-tooling/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/nim-crystal-header-img_NEW.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/11/18/nim-vs-crystal-part-1-performance-interoperability/" title="Read more"
class="u-link-uniform">Nim vs Crystal - Part 1 - Performance & Interoperability</a>
</h3>
<p class="c-meta u-text-light">18th November 2019</p>
<p class="c-box__subtitle u-text-light">Crystal and Nim go head-to-head to figure out the best modern, low-level programming language! In part 1, Performance & Interoperability are reviewed.</p>
<p class="c-box__footer">
<a href="/news/2019/11/18/nim-vs-crystal-part-1-performance-interoperability/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/embark-header_blank.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/03/18/upgrading-to-embark-4/" title="Read more"
class="u-link-uniform">How to upgrade to Embark 4</a>
</h3>
<p class="c-meta u-text-light">18th March 2019</p>
<p class="c-box__subtitle u-text-light">In this guide, we'll learn how to upgrade a Dapp created with Embark 3.x to Embark 4</p>
<p class="c-box__footer">
<a href="/news/2019/03/18/upgrading-to-embark-4/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/embark-header_blank.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/02/18/building-a-decentralized-reddit-with-embark-part-3/" title="Read more"
class="u-link-uniform">Building a decentralized Reddit with Embark - Part 3</a>
</h3>
<p class="c-meta u-text-light">18th February 2019</p>
<p class="c-box__subtitle u-text-light">In this third and last part of the tutorial series about building a decentralized Reddit with Embark, we're building the front-end for our application using React and EmbarkJS.</p>
<p class="c-box__footer">
<a href="/news/2019/02/18/building-a-decentralized-reddit-with-embark-part-3/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/embark-header_blank.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/02/11/building-a-decentralized-reddit-with-embark-part-2/" title="Read more"
class="u-link-uniform">Building a decentralized Reddit with Embark - Part 2</a>
</h3>
<p class="c-meta u-text-light">11th February 2019</p>
<p class="c-box__subtitle u-text-light">This is the second part of the three part tutorial about building a decentralized Reddit with Embark. In this part, we'll be focussing on testing our Smart Contract using EmbarkJS.</p>
<p class="c-box__footer">
<a href="/news/2019/02/11/building-a-decentralized-reddit-with-embark-part-2/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/embark-header_blank.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/02/04/building-a-decentralized-reddit-with-embark-part-1/" title="Read more"
class="u-link-uniform">Building a decentralized Reddit with Embark - Part 1</a>
</h3>
<p class="c-meta u-text-light">4th February 2019</p>
<p class="c-box__subtitle u-text-light">Ever wanted to know what it needs to build a decentralized equivalent of a social platform like Reddit? In this three part tutorial series we're going to build one from scratch!</p>
<p class="c-box__footer">
<a href="/news/2019/02/04/building-a-decentralized-reddit-with-embark-part-1/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/embark-header_blank.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/01/28/running-embark-tests-on-a-continuous-integration-server/" title="Read more"
class="u-link-uniform">Running Embark tests on a Continuous Integration server</a>
</h3>
<p class="c-meta u-text-light">28th January 2019</p>
<p class="c-box__subtitle u-text-light">In this article we're going to learn how to run tests on a Continuous Integration server like Travis using Embark. Read on for more information!</p>
<p class="c-box__footer">
<a href="/news/2019/01/28/running-embark-tests-on-a-continuous-integration-server/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/embark-header_blank.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2019/01/23/building-smart-contract-only-dapps/" title="Read more"
class="u-link-uniform">Building Smart Contract only DApps with Embark</a>
</h3>
<p class="c-meta u-text-light">23rd January 2019</p>
<p class="c-box__subtitle u-text-light">In this article we're going to explore how to build applications with Embark that focus purely on Smart Contract development. Read on!</p>
<p class="c-box__footer">
<a href="/news/2019/01/23/building-smart-contract-only-dapps/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/embark-header_blank.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2018/10/27/how-to-create-a-token-factory-with-embark-part-2/" title="Read more"
class="u-link-uniform">How to create a Token Factory with EthereumPart 2</a>
</h3>
<p class="c-meta u-text-light">27th October 2018</p>
<p class="c-box__subtitle u-text-light">In this second part, we'll continue where we left off in part one, on building a token factory with Embark and focus on how to deploy new tokens.</p>
<p class="c-box__footer">
<a href="/news/2018/10/27/how-to-create-a-token-factory-with-embark-part-2/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
<div class="o-grid o-distance-m ">
<div
class="o-grid__column--1-1 o-grid__column--large-1-3 border-normal c-box--cover"
style="background-image: url(/assets/images/embark-header_blank.jpg)"
></div>
<div class="o-grid__column--1-1 o-grid__column--large-2-3">
<h3 class="c-title-level-3">
<a href="/news/2018/09/27/how-to-create-a-token-factory-with-embark-part-1/" title="Read more"
class="u-link-uniform">How to create a Token Factory with EthereumPart 1</a>
</h3>
<p class="c-meta u-text-light">27th September 2018</p>
<p class="c-box__subtitle u-text-light">This is the first part of a series in which we'll explore how to build a token factory on Ethereum using Embark!</p>
<p class="c-box__footer">
<a href="/news/2018/09/27/how-to-create-a-token-factory-with-embark-part-1/" title="Read more" class="c-link">Read more</a>
</p>
</div>
</div>
</section>
<div class="o-container o-distance o-center">
<a href="/news" class="c-button" title="Back to blog">Back to blog</a>
</div>
</main>
<footer role="contentinfo" class="c-footer o-distance-xxl">
<div class="o-container">
<div class="c-footer__top">
<p class="c-category-title c-footer__top__title u-text-light">
<a href="/" class="c-logo c-logo--negative" title="Embark">Embark</a>
</p>
</div>
<div class="c-footer__body">
<div class="o-grid">
<div class="o-grid__column--1-1 o-grid__column--medium-1-2 o-grid__column--large-1-6">
<p class="c-category-title u-text-light">The Status Network</p>
<ul class="o-list-bare six-columns">
<li class="o-list-bare__item"><a class="u-link-ghost" href="https://status.im/" target="_blank">Status</a></li>
<li class="o-list-bare__item"><a class="u-link-ghost" href="https://keycard.tech/" target="_blank">Keycard</a></li>
<li class="o-list-bare__item"><a class="u-link-ghost" href="https://dap.ps/" target="_blank">dap.ps</a></li>
<li class="o-list-bare__item"><a class="u-link-ghost" href="https://framework.embarklabs.io/" target="_blank">Embark</a></li>
<li class="o-list-bare__item"><a class="u-link-ghost" href="https://subspace.status.im/" target="_blank">Subspace</a></li>
<li class="o-list-bare__item"><a class="u-link-ghost" href="https://vac.dev/" target="_blank">Vac</a></li>
</ul>
</div>
</div>
</div>
<div class="c-footer__bottom">
<p class="u-text-light">
<a href="https://status.im/privacy-policy.html" title="Privacy Policy" target="_blank" class="u-text-light">Privacy Policy</a>
/ © 2020 Embark
</p>
</div>
</div>
</footer>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.4/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script>
<script>
const EMBARK_DOC_VERSIONS = {
};
</script>
<script src="/js/index.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
<script type="text/javascript">
docsearch({
apiKey: '439d8dc2add18007a2f31be4a9c0ed70',
indexName: 'embark',
inputSelector: '#search-input'
});
</script>
</body>
</html>