BCHD is a mature, full node implementation of the Bitcoin Cash protocol

BCHD is an alternative BCH implementation written in Go. It is 100% compatible with the Bitcoin Cash protocol, and comes packed with developer-friendly features.

Download Now

Latest Release v0.19.0

Latest Release v0.19.0

Linux

Windows

Darwin

Solaris

Plan 9

FreeBSD

OpenBSD

NetBSD

Dragonfly

BCHD is the ideal backbone for your next Bitcoin Cash project

If you need to access the Bitcoin Cash blockchain, BCHD gets you there fast

You no longer need to run an indexing server alongside your node

In the past, developers had to install extra software like Electrum X or BitPay's Insight along with their full node. Not anymore! BCHD is single application that both validates blocks and serves index data.

Learn how much work this saves you

Get up and running fast!

Developers running most full node implementations, such as Bitcoin Core, Bitcoin ABC, or Bitcoin Unlimited, have to install extra software that connects to their node, computes the required indexes, and serves the data via a public API. These servers often leave much to be desired.

They tend to be difficult to install, run, and keep running in a production environment. Further, the APIs exposed by these servers are not that great. Insight uses a REST API for some types of data but then requires the use of WebSockets and socket.io for others. Libbitcoin uses ZMQ which requires developers to import a large C dependency. Electrum servers use a clunky and cumbersome stratum API. And so on.

We want developers to start building as fast as possible. Now you simply download the BCHD binary and run it. That’s it!

The gRPC API is an absolute pleasure to work with

gRPC is a new framework created by Google that blows away legacy systems like JSON-RPC, REST and WebSockets. No matter what programming language you prefer, accessing your node's data with gRPC will feel effortless.

Learn why gRPC is so great

Welcome to the future of consuming data

Here's a short video made to introduce developers to our API and gRPC in general.

Prefer to read? Here are just a few benefits of gRPC:

  • No more hunting down API documentation or dealing with poorly documented APIs .
  • No more hand-crafted JSON call objects.  All requests and responses are strongly typed and code-generated, with hints available in the IDE.
  • No more dealing with methods, headers, body, and low-level networking. Everything is handled by gRPC.
  • No more second-guessing the meaning of error codes. gRPC status codes are a canonical way of representing issues in APIs.
  • No more one-off, server-side request handlers to avoid concurrent connections. gRPC is based on HTTP2, which multiplexes multiple streams over the same connection. So no more head-of-line blocking.
  • No more problems streaming data from a server. gRPC supports both one-to-one RPCs and one-to-many streaming requests. No more awkward REST / WebSocket combo APIs.
  • No more data parse errors when rolling out new binaries. gRPC enables backwards and forwards-compatibility of requests and responses.
  • No need to write any client code as the protoc compiler will autogenerate client libraries - including wire serialization and deserialization code - for just about every major language. The compiler writes thousands of lines of code so you don’t have to.

Ready to give it a spin? We currently have a public BCHD server running at bchd.greyh.at:8335. Feel free to try it out!

Additional BCHD features that make development painless

FastSync

Want to get started in a hurry? BCHD now has the option to download a pruned copy of the blockchain. The entire sync takes just over an hour.

Address & UTXO Indexes

BCHD provides an index of every address and transaction on the Bitcoin Cash chain. For developers, BCHD is an out-of-the-box solution that just works.

BCH Wallet

If your project requires Bitcoin Cash wallet functionality, the backend code is already written for you. Take a look at bchwallet on GitHub.

Featuring full SLP support

SLP brings the power of tokens to Bitcoin Cash

Simple Ledger Protocol (SLP) allows developers to create entirely new asset classes on the BCH blockchain. This includes everything from in-game items to company stock shares. We've added full SLP support to BCHD—including SLP Graph Search. This means you can quickly index, validate and query SLP transactions.

Learn more about SLP

Create tokens with Bitcoin Cash.

SLP has everything you need to easily issue, transfer and manage your own crypto token. Simple Ledger Protocol provides the simplest and fastest token system in existence. SLP tokens can be created in seconds, and transactions cost less than a penny.

For more info, visit simpleledger.cash.

BCHD is ready for Neutrino

Neutrino's client-side filtering is the future of SPV wallets

Client-side filtering means users no longer have to disclose their Bitcoin addresses to a third party to find out if they have received a transaction. BCHD is the only implementation that supports this revolutionary technology.

Learn more about Neutrino

Rethink light wallets

Most SPV wallets send user info to third-party servers to filter their transactions. This is a massive leak of personal data, as well as an added strain on those nodes.

Neutrino pulls data directly from the Bitcoin Cash network and filters transactions right on the client device. This preserves users' privacy and results in a more robust wallet network.

Want to know even more? Check out the first Bitcoin Cash Neutrino wallet where we go into more detail.

Download Now

Latest Release v0.19.0

Latest Release v0.19.0

Linux

Windows

Darwin

Solaris

Plan 9

FreeBSD

OpenBSD

NetBSD

Dragonfly

Frequently Asked Questions

Learn even more about the power of BCHD

General

QWhy would I run BCHD rather than Bitcoin Cash Node or Bitcoin Unlimited?

AWe'd like to see BCHN / BU continue on as primary mining nodes, while BCHD services the app developers that need better APIs.

QCan I mine with BCHD?

ABCHD is mainly designed for app developers, however we have mined blocks on testnet, and would love to work with miners to mine blocks on mainnet.

QAre alternative Bitcoin implementations good for the network?

AThis question has been disputed in the Bitcoin space for years. We tend to agree with Bitcoin ABC lead developer Amaury Séchet when he says that multiple implementations help keep "everyone honest."

QWhat are some benefits to coding BCHD in Go?

ADave Collins, the original developer of BTCD, listed some advantages that Go has over C++ that make it excellent for Bitcoin.

  • Integrated test infrastructure
  • Platform independent code
  • Simpler parallelism and excellent support for concurrency
  • No active memory management which leads to eliminating an entire class of the most common security vulnerabilities like buffer overflows
  • Built-in profiling and documentation facilities
  • Significantly faster compilation times

Features

QWhat is the roadmap for BCHD?

AShort answer: to remain in consensus while developing the most feature-rich node implementation Bitcoin Cash has to offer.

You can read our full current roadmap here

QHow is FastSync possible?

AFastSync mode operates like a quasi-pruned node in that it does not have a full copy of the blockchain going back to genesis. But unlike pruned mode it will not delete old historical blocks as it goes.

The way it works is this:

  1. Download a snapshotted copy of the UTXO set at block height 556767 from IPFS.
  2. Validate the ECMH hash of the UTXO set against a hardcoded checkpoint to ensure validity.
  3. Then sync full blocks to the tip.

QDo you still support JSON-RPC?

AYes. Along with gRPC we also support traditional JSON-RPC.

QWhat can I make with bchwallet?

AWhy not build a next-gen SPV mobile wallet? You can easily compile bchwallet to run on iOS or Android, and then just control it with the gRPC API.

Want some inspiration? We built our own Neutrino wallet on bchwallet. Check out the source code on GitHub.

Download Now

Latest Release v0.19.0

Latest Release v0.19.0

Linux

Windows

Darwin

Solaris

Plan 9

FreeBSD

OpenBSD

NetBSD

Dragonfly