Skip to content
Switch branches/tags
This branch is up to date with master.

Latest commit


Git stats


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


License js-standard-style

This is a REST API server, written in node.js JavaScript, using Express.js framework. The purpose of this code is to create a REST API server that provides a common interface for working with a Bitcoin Cash full node and various indexers. See this article to learn about the 'Cash Stack'. Visit, sign up for a free account, and use this REST API right away with the bch-js JavaScript library.

This repository is intended to be paired with bch-js, an npm JavaScript library for building Bitcoin Cash apps.

Cash Stack Network Diagram

Both bch-api and bch-js are part of the 'Cash Stack' full stack of BCH software.

Have questions? Need help? Join our community support: Telegram channel


The following features set this repository apart from

  • Fine grain access is controlled with a JWT token using this back end auth server and this front end. Can be used to monetize access to the REST API.
  • Typescript removed and ES8 JavaScript used instead.
  • npm audit fix frequently run to fix dependencies.

Live Demo

You can test a live demo of the REST API by running the bch-js examples. Rate limits are 20 requests per minute, but you can increase them to 100 with a paid account. You can bootstrap your own REST API server by downloading and installing the infrastructure listed on the CashStrap page.

Configure bch-js

The live servers can be used by bch-js by settings the restURL config property to one of these servers:


There are two installation paths, depending if you want a development or production environment. You'll also need to set up the underlying infrastructure described on this page.

This code targets the Ubuntu 18.04 LTS Linux OS or higher.


This is a standard node.js project. The installation is as follows:

  • Clone this repository:

git clone && cd bch-api

  • Install dependencies:

npm install

  • Customize the shell script to point to the required infrastructure. Start the bch-api REST API by running this script:



For a production environment, a Docker container is provided in the docker directory. One for mainnet and one for testnet. Again, these containers target the Ubuntu 18.04 LTS Linux OS.

  • Install Docker and Docker Compose by following the commands on this Dev Ops page.

  • Customize the bash script for your installation.

  • Build the Docker container with:

docker-compose build --no-cache

  • Run the Docker container with:

docker-compose up

Rate Limits

The rate limits for are controlled by a JWT token. You can increase your rate limits by purchasing a JWT token. If you're using bch-js, check the readme for instructions on increasing rate limits. For interacting with bch-api directly, you can then include the JWT token in the HTTP header like this:

  • Authorization: Token <JWT token>

cURL example

Here is an example using curl for using the JWT token when making a call to the REST API:

export BCHJSTOKEN=eyJhbGciOiJ....

curl "" -X GET -H "Content-Type: application/json" -H "Authorization: Token ${BCHJSTOKEN}"


Have questions? Need help? Join our community support Telegram channel


Copies of this repository will occasionally be uploaded and hosted on IPFS:




The REST API powering







No packages published