Awesome Bitcoin Overview
A curated list of bitcoin services and tools for software developers
🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 igorbarinov/awesome-bitcoin · ⭐ 1.2K · 🏷️ Decentralized Systems
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 (⭐275) - CLI to quickly fire up a a Bitcoin regtest box along with Electrs and Esplora. Includes faucet and push commands.
- hal (⭐165) - Bitcoin CLI swiss-army-knife (based on rust-bitcoin).
- BitKey - Live USB for airgapped transactions and Bitcoin swiss army knife.
- Pycoin (⭐1.4k) - Python-based Bitcoin and alt-coin utility library.
- bx (⭐601) - Bitcoin Command Line Tool.
- txwatcher (⭐49) - A little Python utility that lets you monitor Bitcoin addresses through Blockchain Websocket API and perform custom callbacks.
- hellobitcoin (⭐249) - 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 (⭐30) - 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 (⭐1k) - Self-hosted blockchain explorer.
- Insight
- Chain.com
- Coinbase Wallet
- Chainradar API (⭐5) - Blockchain Explorer API for Chainradar.
- One-Time Address (⭐74) 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
- kibō.money - An open source Bitcoin Core data extractor and visualizer (aka FOSS 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 (⭐734) - 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 (⭐181)
- 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 (⭐58)
- Bitcore Library (⭐4.9k)
- Bitcoinjs-lib (⭐5.7k)
- Cryptocoin
- BlockTrail SDK NodeJS (⭐39)
- bcoin (⭐3k) - Javascript bitcoin library for node.js and browsers.
- Libauth – A lightweight, zero-dependency, JavaScript/TypeScript bitcoin library.
- noble-curves (⭐703) — audited implementation of secp256k1 + schnorr in pure typescript
- noble-secp256k1 (⭐768) — alternative implementation of secp256k1: size is only 4KB gzipped; lots of comments, very valuable for learning how algorithms work
- scure-btc-signer (⭐164) — audited & minimal library for creating, signing & decoding Bitcoin transactions. With Schnorr, Taproot, UTXO & PSBT.
- bitcoin-sdk-js (⭐33) — Bitcoin TypeScript/JavaScript Library for NodeJS, Browser and Mobile. Segwit & Taproot support.
PHP Libraries
Ruby Libraries
- Bitcoin-ruby (⭐925)
- bitcoinrb (⭐62) - Ruby bitcoin library including script interpreter.
- bech32rb (⭐20) - Bech32 and Bech32m encode/decode library.
- bip-schnorrrb (⭐7) - Schnorr signature library for Bitcoin.
Rust Libraries
- Bitcoin Dev Kit (BDK) - With BDK, you can seamlessly build cross platform mobile wallets
- Rust Bitcoin (⭐2.2k) - 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 (⭐22)
- btctxstore (⭐10) - Simple library to store/retrieve information in bitcoin transactions using OP_RETURN.
- pybitcointools (⭐1.3k) - Python library for Bitcoin signatures and transactions from Vitalik Buterin. Project discontinued.
- pycoin (⭐1.4k) - Python library for Bitcoin keys, signatures, transactions. Includes full VM implementation and tools for manipulating keys (ku) and transactions (tx).
- bitcoin_tools (⭐295) - 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 (⭐6) - 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 (⭐3.9k) - Library that provides a simple and consistent API for interacting with 50+ Bitcoin currency exchanges.
- Bitcoin Spring Boot Starter (⭐67) - 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 (⭐114) - Swift package for secp256k1 applications, includes Elliptic Curve operations, Schnorr, ZKP and more for Bitcoin.
.Net Libraries
- NBitcoin (⭐1.9k) - Comprehensive Bitcoin library for the .NET framework.
- BitcoinLib (⭐406) - The most complete, up-to-date, battle-tested .net Library and RPC Wrapper for Bitcoin and Altcoins in C#.
Haskell Libraries
- Haskoin-core (⭐523) - Haskoin Core is a library of Bitcoin and Bitcoin Cash functions written in Haskell.
Playgrounds
- Script Playground
- Bitcoin IDE (⭐216) - Bitcoin Script for dummies.
- Script Debugger (⭐40)
- Bitcore Playground
- Mnemonic Code generator
- blockchain-demo (⭐5.3k) - A web-based demonstration of blockchain concepts.
- Bitcoin Script Debugger (⭐56) - 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 (⭐124) - 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 (⭐61) - Fast, quick and dirty bitcoin blockchain parser.
- BitcoinABE (⭐982) - Abe: block browser for Bitcoin and similar currencies.
- Chaingraph (⭐53) – A multi-node blockchain indexer and GraphQL API.
Full nodes
- btcd (⭐6.3k) - Go-based full node since 2013.
- Bitcoin-ruby-node (⭐26) - bitcoin node based on bitcoin-ruby-blockchain.
- Fullnode (⭐197) - Javascript implementation of bitcoin.
- Bitcore Node (⭐353) - bitcoind linked to node.js by BitPay.
- Bitcore (⭐4.9k) - 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 (⭐24k)
- 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 (⭐162).
- Bitcoin Protocol Development Curriculum - Chaincode Labs (⭐646).
- Lightning Network Protocol Development Curriculum - Chaincode Labs (⭐363).
- 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 (⭐335k) 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.