Developing with Bitcoin

In its early days, Bitcoin offered only one wallet and one node implementation. Since then, developer options have expanded rapidly. Before starting your project, consider your optimal setup:

  • Node Implementation. Aside from Bitcoin Core (C++), examples include: btcd (Go); BitcoinJ (Java); rust-bitcoin (Rust); bcoin (JavaScript); and libbitcoin (C++).
  • Programming Language. Bindings between most popular programming languages and at least one node implementation are available. In many cases JSON-RPC can be used.
  • Wallet API. Wallet support for third party extensions spans a wide spectrum.
  • Operating System. Most wallet and node development can be hosted from Linux, Windows, and OSX.

Node Setup and Maintenance

Many projects will benefit from access to a dedicated node. These articles discuss how to get started:

Transactions and Script

An up-front investment in understanding transactions and Script will pay dividends regardless of the specific technologies used by your project.

Node Implementations

Several alternatives to Bitcoin Core exist. For many applications a loosly-coupled interfaces through JSON-RPC will suffice. For deeper use of the protocol, consider an implementation written in your preferred language.

Wallet APIs

Wallets are the main point of contact between end users and the protocol. Most wallets are released under open source licenses. Some even offer developer APIs:

Branching Out

The Bitcoin economy is growing. Most of the activity has focused on the development of alternative networks. More recently, extensions to the protocol such as Layer 2 and sidechains have become practical. Evolution of the protocol itself continues, albeit at a slower pace. Keeping up with these developments puts you in a better position to match your software to new needs.

Bitzuma regularly releases new content for Bitcoin students at all levels. To stay up-to-date, consider joining the newsletter. Unsubscribe at any time.