Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

OpenBazaar Client v2

This is the reference client for the OpenBazaar network. It is an interface for your OpenBazaar node, to use it you will need to run an OpenBazaar node either locally or on a remote server.

For full installable versions of the OpenBazaar app, with the server and client bundled together, go to the OpenBazaar download page.

Build Status

Getting Started

To create a local development copy of the reference client, clone the client repository into a directory of your choice:

  • git clone

Make sure you have Node.js and NPM installed. Node versions older than 8.9.2 or NPM versions older than 5.5.1 may not work.

This client uses Babel to compile ES6 JavaScript. You should be familiar with ES6 before modifying its code.


  1. Navigate to the directory you cloned the repo into.
  2. Enter npm install


npm start will:

  • compile your Sass / re-compile on changes
  • run BrowserSync in watch mode so the app automatically refreshes on JS and HTML changes and dynamically injects any CSS / Sass changes**.
  • launch the Electron app

** At this time, the app will not refresh on main.js (or other root folder JS changes). This would require the entire Electron app to refresh and BrowserSync is only refreshing our browser.

Linux Troubleshooting

If you see an ENOSPC error after trying npm start and you are using Linux, you may need to do the following:

  1. Enter this on the command line: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

For Arch Linux add this line to /etc/sysctl.d/99-sysctl.conf: fs.inotify.max_user_watches=524288

  1. Execute: sysctl --system

This will prevent your system from having errors due to too many files being watched.


npm run lint will run eslint on the JS files.

npm run lint:watch will run eslint on any JS file changes.


npm run test will execute test files in the test folder.

npm run test:watch will execute the tests on any file changes.

Built With


We welcome contributions to the reference client. The best way to get started is to look for an issue with the Help Wanted label.

You can also look for issues with the bug label. These are confirmed bugs that need to be fixed.

Contributions are expected to match the coding style already present in this repo, and must pass es-lint with no errors.

Contributions that make visual changes are also expected to match the repo's current style.

If you want to help with translations, please request to join the translation team at

You can request new languages there, and contribute to the translation of existing languages.

New languages are usually added when they reach 80% or more completion, and not removed from the client unless they fall below 60% for several releases.


This project is licensed under the MIT License. You can view LICENSE.MD for more details.