Awesome
Awesome Bitcoin
A curated list of bitcoin services and tools for software developers
List of content
- Utilities
- Blockchain API and Web services
- Wallets API
- Open Source wallets
- Blockchain Explorers
- C Libraries
- C++ Libraries
- JavaScript Libraries
- PHP Libraries
- Ruby Libraries
- Python Libraries
- Java Libraries
- Scala Libraries
- Swift Libraries
- .Net Libraries
- Haskell Libraries
- Playgrounds
- Blockchain dump
- Full nodes
- Read
- Course
- Additional Resources
Utilities
- Nigiri - CLI to quickly fire up a a Bitcoin regtest box along with Electrs and Esplora. Includes faucet and push commands.
- hal - Bitcoin CLI swiss-army-knife (based on rust-bitcoin).
- BitKey - Live USB for airgapped transactions and Bitcoin swiss army knife.
- Pycoin - Python-based Bitcoin and alt-coin utility library.
- bx - Bitcoin Command Line Tool.
- txwatcher - A little Python utility that lets you monitor Bitcoin addresses through Blockchain Websocket API and perform custom callbacks.
- hellobitcoin - A collection of simple programs which can generate bitcoin wallets, create and sign transactions, and send transactions over the bitcoin network.
- Mining visualization
- HD Wallet Scanner - Find all used addresses in your Bitcoin HD wallets bypassing gap limits.
<qr-code>
– A no-framework, no-dependencies, customizable, animate-able, SVG-based<qr-code>
web component.
Blockchain API and Web services
- 3xpl.com - Fastest ad-free universal block explorer.
- Bitquery.io - Bitquery provides blockchain data, offering real-time streaming APIs for 40+ chains, NFT APIs, and a money flow investigation tool.
- block.io
- blockchair.com - Universal blockchain explorer and search engine.
- BlockCypher
- Esplora - Self-hosted blockchain explorer.
- Insight
- Chain.com
- Coinbase Wallet
- Chainradar API - Blockchain Explorer API for Chainradar.
- One-Time Address A better way to share your Bitcoin address.
- Cryptocurrency Alerting - Bitcoin wallet monitoring and blockchain alerts.
- BTC Connect - Unified Bitcoin Layer-1 and Layer-2 wallet connection and account abstraction.
- Tatum - The blockchain development platform to build Web3 application. The go-to blockchain data API for Web3 developers.
- mempool.space - Open source and self hostable REST, WebSocket and Electrum RPC API
- Satonomics - A better, FOSS, Bitcoin-only, self-hostable Glassnode
Market Data API
- CoinMetrics.io JSON REST API (free as well as paid) with access to market data. Also CSV data file download available.
- Messari.io JSON REST API (free as well as paid) with access to market data, news, metrics, profile, etc.
Wallets API
Open Source Wallets
Privacy projects
- Joinmarket - Decentralized CoinJoin implementation
- Jam - User friendly frontend for Joinmarket
Blockchain Explorers
- 3xpl.com - Fastest ad-free universal block explorer.
- Chain.so
- Blockchain.com
- Blockchair.com - Universal blockchain explorer and search engine.
- Blockstream.info - Blockchain explorer with API (mainnet, testnet and Liquid).
- BlockTrail
- Bitcoin Transaction Explorer
- Blockexplorer.com
- Smartbit
- Bitkit - Real time transaction updates.
- mempool.space - Open source, self hostable blockchain, mempool and lightning network explorer
C Libraries
C++ Libraries
JavaScript Libraries
- Awesome CryptoCoinJS
- Bitcore Library
- Bitcoinjs-lib
- Cryptocoin
- BlockTrail SDK NodeJS
- bcoin - Javascript bitcoin library for node.js and browsers.
- Libauth – A lightweight, zero-dependency, JavaScript/TypeScript bitcoin library.
- noble-curves — audited implementation of secp256k1 + schnorr in pure typescript
- noble-secp256k1 — alternative implementation of secp256k1: size is only 4KB gzipped; lots of comments, very valuable for learning how algorithms work
- scure-btc-signer — audited & minimal library for creating, signing & decoding Bitcoin transactions. With Schnorr, Taproot, UTXO & PSBT.
- bitcoin-sdk-js — Bitcoin TypeScript/JavaScript Library for NodeJS, Browser and Mobile. Segwit & Taproot support.
PHP Libraries
Ruby Libraries
- Bitcoin-ruby
- bitcoinrb - Ruby bitcoin library including script interpreter.
- bech32rb - Bech32 and Bech32m encode/decode library.
- bip-schnorrrb - Schnorr signature library for Bitcoin.
Rust Libraries
- Bitcoin Dev Kit (BDK) - With BDK, you can seamlessly build cross platform mobile wallets
- Rust Bitcoin - support for de/serialization, parsing and executing on data-structures and network messages.
- Lightning Dev Kit (LDK) - Complete Lightning implementation packaged as an SDK
Python Libraries
- BlockTrail SDK Python
- btctxstore - Simple library to store/retrieve information in bitcoin transactions using OP_RETURN.
- pybitcointools - Python library for Bitcoin signatures and transactions from Vitalik Buterin. Project discontinued.
- pycoin - Python library for Bitcoin keys, signatures, transactions. Includes full VM implementation and tools for manipulating keys (ku) and transactions (tx).
- bitcoin_tools - Python library for building and analyzing transactions and scripts (both standard and custom). Comes along with a UTXO set analysis tool. Includes several examples and exhaustive documentation.
- oogway - A secure Bitcoin utility library for Python.
- pybtc - Python BTC is an experimental project that aims to provide human-friendly interfaces for common BTC operations.
Java Libraries
Note that you can also use Scala libraries in Java.
- BitcoinJ
- XChange - Library that provides a simple and consistent API for interacting with 50+ Bitcoin currency exchanges.
- Bitcoin Spring Boot Starter - Bitcoin integration for Spring Boot applications.
Scala libraries
Note that you can also use Java libraries in Scala.
- Bitcoin-S - Scala/JVM toolkit for Bitcoin applications, includes Bitcoin data structures, transaction signing, strongly typed
bitcoind
/Eclair RPC clients, and more.
Swift libraries
- secp256k1.swift - Swift package for secp256k1 applications, includes Elliptic Curve operations, Schnorr, ZKP and more for Bitcoin.
.Net Libraries
- NBitcoin - Comprehensive Bitcoin library for the .NET framework.
- BitcoinLib - The most complete, up-to-date, battle-tested .net Library and RPC Wrapper for Bitcoin and Altcoins in C#.
Haskell Libraries
- Haskoin-core - Haskoin Core is a library of Bitcoin and Bitcoin Cash functions written in Haskell.
Playgrounds
- Script Playground
- Bitcoin IDE - Bitcoin Script for dummies.
- Script Debugger
- Bitcore Playground
- Mnemonic Code generator
- blockchain-demo - A web-based demonstration of blockchain concepts.
- Bitcoin Script Debugger - Visualize Bitcoin script execution for real transactions.
- Bitauth IDE – An interactive development environment for Bitcoin contracts.
- ChainQuery Bitcoin RPC - Run select bitcoin RPC API calls and read full RPC docs in your browser.
Blockchain dump
- WebBTC - These are postgres database dumps of the bitcoin-ruby-blockchain database generated by webbtc.com.
- BitcoinDatabaseGenerator - A high performance data transfer tool that can be used to copy data from Bitcoin Core blockchain files to a SQL Server database.
- Blockparser+SQL - Fast, quick and dirty bitcoin blockchain parser.
- BitcoinABE - Abe: block browser for Bitcoin and similar currencies.
- Chaingraph – A multi-node blockchain indexer and GraphQL API.
Full nodes
- btcd - Go-based full node since 2013.
- Bitcoin-ruby-node - bitcoin node based on bitcoin-ruby-blockchain.
- Fullnode - Javascript implementation of bitcoin.
- Bitcore Node - bitcoind linked to node.js by BitPay.
- Bitcore - Formerly just a Nodejs library, now a full node.
- Bitcoin Core - direct descendant of the original Bitcoin implementation in C++
Read
- A Gentle Introduction to Bitcoin Core Development
- Mastering Bitcoin
- Grokking Bitcoin - An in-depth technical book with rich illustrations.
- Bitcoin Stackexchange
- Elliptic Curve Cryptography A Gentle Introduction.
- Bitcoin Programming with BitcoinJS and Bitcoin Core CLI.
- Bitcoin Protocol Development Curriculum - Chaincode Labs.
- Lightning Network Protocol Development Curriculum - Chaincode Labs.
- btcinformation.org / Developer Documentation - Find useful resources, guides and reference material for developers.
Course
Additional Resources
- @lopp / Bitcoin Developers - Software developers who have experience working on Bitcoin implementations or applications.
- @lopp / Lightning Developers - Software developers with experience working on LN implementations / applications.
- Practical Bitcoin Info - Google Sheets.
- A brief history of Bitcoin development...
- bitcoin-resources.com Meta-list of Bitcoin resources, from books, articles, to podcasts.
- Jameson Lopp Bitcoin Resource List Very detailed curated Bitcoin resource list and meta-list by J. Lopp
- Svrgnty.com: Everything Bitcoin A curated list of the best Bitcoin resources.
- River Learn A collection of educational resources to learn about Bitcoin basics, investing, technology, and more.
- Learn me a Bitcoin - Greg Walker - extensive learning ressource for bitcoin developers
Inspired by the awesome list thing. Created by BlockchainU fellows.
License
To the extent possible under law, Igor Barinov has waived all copyright and related or neighboring rights to this work.