# 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.

## 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

- BitGo
- Coinbase
- Blockchain.com
- BIP32
- walletOS

## Open Source Wallets

- CoPay by BitPay
- Coinb.in
- Electrum

## 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.

## C Libraries

- libsecp256k1

## C++ Libraries

- Libbitcoin
- libwally-core

## 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.

## PHP Libraries

- PHP-OP_RETURN
- BlockTrail PHP SDK

## 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.

## 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.

## 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.

## 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

- Bitcoin & Cryptocurrency.

## 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

- ## River Learn A collection of educational resources to learn about Bitcoin basics, investing, technology, and more.

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.