Building on Bitcoin has come a long way since 2009. Gone are the days of a non-existent ecosystem of developer tooling and infrastructure. Now there are many ways to build on Bitcoin, and with many tools to keep track of.
What dev tools are available today, so you can start building on Bitcoin?
Today, the Bitcoin developer toolkit is vast and diverse. So what tools are available for you to start building today? Let’s go through just a subset of Bitcoin dev tools to highlight the array of entry points you have to get started with development with Bitcoin.
Building Directly on Bitcoin
Bitcoin Core is the backbone of the Bitcoin network. It stores blockchain data and ensures transactions are secure and valid. There are ever-growing lists of dev tools purpose-built for developing directly on the blockchain (Lopp’s list and Barinov’s list are two helpful places to start). Here’s a select few tools to get you started:
Programming Libraries
These are various libraries specific to different programming languages that allow you to build with Bitcoin in your language of choice:
- BitcoinJS: BitcoinJS is a powerful, open-source JavaScript library, tailored for Bitcoin protocol operations on Node.js and browsers. It simplifies the process of creating, managing, and signing transactions, ensuring developers have a reliable toolset for working with Bitcoin.
- Libbitcoin: Libbitcoin is a comprehensive C++ Bitcoin library offering a modular architecture. Designed for high-performance tasks, it provides developers with tools to build applications for different platforms, from embedded systems to mobile devices, focusing on scalability and flexibility.
- Pybitcointools: pybitcointools is a minimalist Python library for Bitcoin operations. Lightweight yet versatile, it offers essential functionalities like transaction creation, signature generation, and address derivation. Ideal for developers seeking a simple toolset to navigate the Bitcoin protocol.
- BitcoinJ: BitcoinJ is a Java-based library for Bitcoin-centric applications. With its user-friendly API, developers can interact with the Bitcoin network, manage wallets, process transactions, and more. Notably, it's lightweight, making it a popular choice for mobile applications and embedded devices.
- Bitcoin Dev Kit: Bitcoin Dev Kit (BDK) is a collection of tools and libraries that enables you to build cross-platform Bitcoin wallets. This tool is lightweight and modular, enabling you to focus on building a customized user experience.
Bitcoin core querying
These are tools that allow you to directly interact with Bitcoin core, for instance to build wallets or node infrastructure.
- Bitcoin Core RPC API: Bitcoin Core's JSON-RPC interface is a gateway for developers. It offers programmatic access to Bitcoin data, like querying balances, broadcasting transactions, and getting network info, enabling interactions between apps and the Bitcoin network.
- Bitcoin-cli: Bundled with Bitcoin Core, bitcoin-cli is a command-line interface that communicates with a Bitcoin node. It's a hands-on tool for developers and operators, useful for transaction broadcasting and network queries.
Utilities
These are plug and play libraries built to help developers perform a specific task.
- BTCPay Server: BTCPay Server is an open-source payment processor for Bitcoin and other cryptocurrencies. It integrates with Bitcoin Core, enabling merchants to autonomously accept Bitcoin payments without third-party intervention, offering unparalleled privacy and security.
- Nigiri. Bitcoin-in-a-Box, Nigiri lets you easily set up a test blockchain within a docker container that has all the functionality of a full blockchain for testing purposes.
- btckit: btckit is a short and readable standard for Bitcoin wallets, designed to be secure and easy-to-use, enabling you to quickly spin up a new Bitcoin wallet service.
This list barely scratches the surface, and there are dozens of Bitcoin devtools on the market. Whatever your development background, you can find a suite of tools that match your skill set so you can quickly start building on Bitcoin.
Building on Bitcoin Layers
Building directly on Bitcoin is a great option, but the Bitcoin ecosystem has expanded beyond the Bitcoin blockchain itself into Bitcoin layers. These layers allow you to build Bitcoin smart contracts, Web3 apps, scalable payments, Bitcoin DeFi, and more in the Bitcoin ecosystem. The tooling in these layers offers a great developer experience and is growing all the time.
Building on Stacks
Bitcoin wasn't built with smart contracts and the whole range of Web3 use cases (NFTs, DEFi, DAOs, etc) in mind. In fact, Bitcoin launched in 2009, more than 5 years before the first smart contract went live on the Ethereum network. However, Bitcoin layers like Stacks were built from the core to be an extensible platform for Web3 development.
At the core of Stacks is its programming language, Clarity. Clarity, unlike many smart contract languages, emphasizes transparency and security. Designed for predictability, its decidable language ensures that you can analyze and understand the full scope of your contract behavior before deployment, minimizing bugs and unforeseen consequences.
Here at Hiro, we’ve been building a range of dev tools for the Stacks ecosystem, including:
- Stacks Blockchain API: The Stacks Blockchain API provides an interface between apps and the Stacks blockchain. It abstracts complex blockchain interactions, allowing you to easily fetch information like account balances, transaction details, and smart contract metadata without running a full node yourself.
- Clarinet IDE: Clarinet is a development environment tailored for Clarity. It aids developers through the entire smart contract development lifecycle, from coding to debugging. Clarinet offers a local environment for executing Clarity contracts, allowing for rapid prototyping and iterative development.
- Clarity Extension for Visual Studio Code: The Clarity extension for VS Code enhances the developer experience by integrating Clarity's smart contract development capabilities directly into one of the most popular code editors. This extension offers syntax highlighting, auto-completion, and inline error detection for Clarity code.
- The Hiro Platform: The Hiro Platform is a hosted development experience that enables you to build and deploy smart contracts, all from your browser. The platform also lets you manage chainhooks, customized IFTTT logic based on blockchain events.
- Stacks.js: Stacks.js is a comprehensive library for building applications on Stacks. It streamlines interactions with the Stacks blockchain by offering a suite of packages that handle basic functions, such as user authentication, transactions ending, and more.
- Stacks Explorer: The Stacks Explorer provides a visual interface to inspect activities on the Stacks blockchain. Users and developers can view transaction histories, smart contract details, and token transfers. It's an invaluable tool for verifying contract deployments, tracking transaction confirmations, and understanding network activity.
Building on Lightning
The Lightning Network is a second-layer scaling solution built on top of Bitcoin that enables fast and low-cost transactions. In other words, it’s an effective payment network. If you're looking to develop applications or services on the Lightning Network, there are a number of key tools and resources available. Here are some essential ones:
- Lightning Network Daemon (lnd): Developed by Lightning Labs, lnd is a complete implementation of a Lightning node. It provides all the tools necessary to send and receive payments on the Lightning Network and has a comprehensive API for developers.
- RTL (Ride The Lightning): An open-source, visual interface for managing Lightning nodes. RTL makes it easier to manage channels, peers, and payments without using the command line.
- Lightning Dev Kit. This LDK from Spiral lets developers set up a Lightning node on any device with wallets, private keys, and persistent storage without the difficulties of getting everything set up themselves.
- Spark Wallet: A minimalistic wallet GUI for c-lightning. Spark Wallet is both a web application and a mobile app, enabling easy interaction with a c-lightning node.
- Lightspark. Lightspark is an open payment platform for Lightning that offers wallet SDKs and APIs to quickly integrate Lightning payments into your application.
Building on Rootstock
Rootstock, formerly known as RSK, is a merge-mined sidechain of Bitcoin that introduces Ethereum-compatible smart contracts to the Bitcoin network, enabling DeFi apps and more. Rootstock bridges the gap between the two leading blockchains by adding the flexibility of Ethereum's smart contract capabilities to Bitcoin's robust security model.
Because Rootstock is compatible with Ethereum, you are able to use the extensive tooling from that blockchain as well. Here are some key dev tools associated with Rootstock:
- RSKj Node: RSKj Node is the Java-based reference node implementation for Rootstock. This software connects to the Rootstock network, validating transactions and contracts.
- Hardhat: Given that Rootstock is compatible with the Ethereum Virtual Machine (EVM), you can use Hardhat, a popular tool for local contract development, debugging, and deployment that lets you easily manage and automate recurring tasks in your dev process.
- Web3.js: Web3.js is a collection of JavaScript libraries that you can use to build a front end for a Rootstock app.
- RSK Explorer: Similar to Bitcoin's Block Explorer or Ethereum's Etherscan, RSK Explorer allows users and developers to explore transactions, addresses, and blocks.
Building on Liquid
The Liquid Network is a sidechain of Bitcoin developed by a company called Blockstream that enables an open financial system and the issuance of new assets. Liquid is designed to offer faster transaction settlements, increased transaction confidentiality, and Bitcoin settlement. Liquid uses its own smart contract language Simplicity, which can be used to create advanced apps.
If you're aiming to develop on the Liquid Network, several tools and resources can aid you:
- Blockstream GDK: Blockstream’s Green Development Kit is a tool that enables you to manage wallets, transfer assets, and build apps.
- Liquid LDK: The Liquid Development Kit offers a sped-up implementation of Liquid wallets for NodeJS and browsers.
- LiquidJS: LiquidJS is a fork of BitcoinJS (a library discussed above) that supports the Liquid blockchain.
- Blockstream AMP: Blockstream AMP is an API that lets you easily track assets on Liquid.
- Liquid Explorer: Liquid Explorer is a tool similar to a block explorer but tailored for the Liquid Network. It allows users and developers to browse blocks, transactions, and other network activities.
Ready to Start Building on Bitcoin?
This isn’t an exhaustive list of Bitcoin dev tools. Far from it. Bitcoin dev tools are expansive these days, given the layers and protocols now available, and if you’re looking for a tool that supports a particular programming language, you can probably find it.
Consider this list a jumping off point. You want to build on Bitcoin Core and already know Python? Well, head to the pybitcointools GitHub, fork the code and start playing. Want to start using Stacks? Create an account on the Hiro Platform.
One thing that’s clear: it has never been more exciting to build on Bitcoin than it is right now.