Awesome Bitcoin =============== A curated list of bitcoin services and tools for software developers [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) ## List of content - [Utilities](#utilities) - [Blockchain API and Web services](#blockchain-api-and-web-services) - [Wallets API](#wallets-api) - [Open Source wallets](#open-source-wallets) - [Blockchain Explorers](#blockchain-explorers) - [C Libraries](#c-libraries) - [C++ Libraries](#c-libraries-1) - [JavaScript Libraries](#javascript-libraries) - [PHP Libraries](#php-libraries) - [Ruby Libraries](#ruby-libraries) - [Python Libraries](#python-libraries) - [Java Libraries](#java-libraries) - [Scala Libraries](#scala-libraries) - [Swift Libraries](#swift-libraries) - [.Net Libraries](#net-libraries) - [Haskell Libraries](#haskell-libraries) - [Playgrounds](#playgrounds) - [Blockchain dump](#blockchain-dump) - [Full nodes](#full-nodes) - [Read](#read) - [Course](#course) - [Additional Resources](#additional-resources) ## Utilities * [Nigiri](https://github.com/vulpemventures/nigiri/) - CLI to quickly fire up a a Bitcoin regtest box along with Electrs and Esplora. Includes faucet and push commands. * [hal](https://github.com/stevenroose/hal) - Bitcoin CLI swiss-army-knife (based on rust-bitcoin). * [BitKey](https://bitkey.io) - Live USB for airgapped transactions and Bitcoin swiss army knife. * [Pycoin](https://github.com/richardkiss/pycoin) - Python-based Bitcoin and alt-coin utility library. * [bx](https://github.com/libbitcoin/libbitcoin-explorer) - Bitcoin Command Line Tool. * [txwatcher](https://github.com/tsileo/txwatcher) - A little Python utility that lets you monitor Bitcoin addresses through Blockchain Websocket API and perform custom callbacks. * [hellobitcoin](https://github.com/prettymuchbryce/hellobitcoin) - A collection of simple programs which can generate bitcoin wallets, create and sign transactions, and send transactions over the bitcoin network. * [Mining visualization](http://www.yogh.io/#mine:last) * [HD Wallet Scanner](https://github.com/alexk111/HD-Wallet-Scanner) - Find all used addresses in your Bitcoin HD wallets bypassing gap limits. * [``](https://github.com/bitjson/qr-code) – A no-framework, no-dependencies, customizable, animate-able, SVG-based `` web component. ## Blockchain API and Web services * [3xpl.com](https://3xpl.com/) - Fastest ad-free universal block explorer. * [Bitquery.io](https://bitquery.io/) - Bitquery provides blockchain data, offering real-time streaming APIs for 40+ chains, NFT APIs, and a money flow investigation tool. * [block.io](https://block.io) * [blockchair.com](https://blockchair.com/) - Universal blockchain explorer and search engine. * [BlockCypher](https://www.blockcypher.com) * [Esplora](https://github.com/Blockstream/esplora) - Self-hosted blockchain explorer. * [Insight](https://insight.is) * [Chain.com](https://chain.com) * [Coinbase Wallet](https://wallet.coinbase.com/) * [Chainradar API](https://github.com/yasaricli/chainradar-api) - Blockchain Explorer API for Chainradar. * [One-Time Address](https://github.com/alexk111/One-Time-Address) A better way to share your Bitcoin address. * [Cryptocurrency Alerting](https://cryptocurrencyalerting.com/blockchain-alerts.html) - Bitcoin wallet monitoring and blockchain alerts. * [BTC Connect](https://developers.particle.network/reference/introduction-to-btc-connect) - Unified Bitcoin Layer-1 and Layer-2 wallet connection and account abstraction. * [Tatum](https://tatum.io/blockchain-api) - The blockchain development platform to build Web3 application. The go-to blockchain data API for Web3 developers. ## Market Data API * [CoinMetrics.io](https://docs.coinmetrics.io/api/v2/) JSON REST API (free as well as paid) with access to market data. Also CSV data file download available. * [Messari.io](https://messari.io/api) JSON REST API (free as well as paid) with access to market data, news, metrics, profile, etc. ## Wallets API * [BitGo](https://bitgo.github.io/bitgo-docs/) * [Coinbase](https://developers.coinbase.com) * [Blockchain.com](https://www.blockchain.com/api) * [BIP32](http://bip32.org) * [walletOS](https://www.pinestreetlabs.com/walletos/) ## Open Source Wallets * [CoPay by BitPay](https://copay.io/) * [Coinb.in](https://coinb.in) * [Electrum](https://electrum.org/) ## Blockchain Explorers * [3xpl.com](https://3xpl.com/bitcoin) - Fastest ad-free universal block explorer. * [Chain.so](http://chain.so) * [Blockchain.com](https://blockchain.com) * [Blockchair.com](https://blockchair.com/bitcoin) - Universal blockchain explorer and search engine. * [Blockstream.info](https://blockstream.info) - Blockchain explorer with API (mainnet, testnet and Liquid). * [BlockTrail](https://www.blocktrail.com/BTC) * [Bitcoin Transaction Explorer](https://github.com/JornC/bitcoin-transaction-explorer) * [Blockexplorer.com](https://blockexplorer.com) * [Smartbit](https://www.smartbit.com.au) * [Bitkit](https://bitkit.live) - Real time transaction updates. ## C Libraries * [libsecp256k1](https://github.com/bitcoin-core/secp256k1) ## C++ Libraries * [Libbitcoin](https://libbitcoin.org/) * [libwally-core](https://github.com/ElementsProject/libwally-core) ## JavaScript Libraries * [Awesome CryptoCoinJS](https://github.com/cryptocoinjs/awesome-cryptocoinjs) * [Bitcore Library](https://github.com/bitpay/bitcore/tree/v8.0.0/packages/bitcore-lib) * [Bitcoinjs-lib](https://github.com/bitcoinjs/bitcoinjs-lib) * [Cryptocoin](http://cryptocoinjs.com/#modules) * [BlockTrail SDK NodeJS](https://github.com/blocktrail/blocktrail-sdk-nodejs) * [bcoin](https://github.com/bcoin-org/bcoin) - Javascript bitcoin library for node.js and browsers. * [Libauth](https://libauth.org/) – A lightweight, zero-dependency, JavaScript/TypeScript bitcoin library. * [noble-curves](https://github.com/paulmillr/noble-curves) — audited implementation of secp256k1 + schnorr in pure typescript * [noble-secp256k1](https://github.com/paulmillr/noble-secp256k1) — alternative implementation of secp256k1: size is only 4KB gzipped; lots of comments, very valuable for learning how algorithms work * [scure-btc-signer](https://github.com/paulmillr/scure-btc-signer) — audited & minimal library for creating, signing & decoding Bitcoin transactions. With Schnorr, Taproot, UTXO & PSBT. ## PHP Libraries * [PHP-OP_RETURN](https://github.com/coinspark/php-OP_RETURN) * [BlockTrail PHP SDK](https://github.com/blocktrail/blocktrail-sdk-php) ## Ruby Libraries * [Bitcoin-ruby](https://github.com/lian/bitcoin-ruby) * [bitcoinrb](https://github.com/chaintope/bitcoinrb) - Ruby bitcoin library including script interpreter. * [bech32rb](https://github.com/azuchi/bech32rb) - Bech32 and Bech32m encode/decode library. * [bip-schnorrrb](https://github.com/chaintope/bip-schnorrrb) - Schnorr signature library for Bitcoin. ## Python Libraries * [BlockTrail SDK Python](https://github.com/blocktrail/blocktrail-sdk-python) * [btctxstore](https://github.com/F483/btctxstore) - Simple library to store/retrieve information in bitcoin transactions using OP_RETURN. * [pybitcointools](https://github.com/vbuterin/pybitcointools) - Python library for Bitcoin signatures and transactions from Vitalik Buterin. Project discontinued. * [pycoin](https://github.com/richardkiss/pycoin) - Python library for Bitcoin keys, signatures, transactions. Includes full VM implementation and tools for manipulating keys (ku) and transactions (tx). * [bitcoin_tools](https://github.com/sr-gi/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](https://github.com/merwane/oogway) - A secure Bitcoin utility library for Python. ## Java Libraries > Note that you can also use [Scala libraries](#scala-libraries) in Java. * [BitcoinJ](https://bitcoinj.github.io) * [XChange](https://github.com/knowm/XChange) - Library that provides a simple and consistent API for interacting with 50+ Bitcoin currency exchanges. * [Bitcoin Spring Boot Starter](https://github.com/theborakompanioni/bitcoin-spring-boot-starter) - Bitcoin integration for Spring Boot applications. ## Scala libraries > Note that you can also use [Java libraries](#java-libraries) in Scala. * [Bitcoin-S](https://bitcoin-s.org) - Scala/JVM toolkit for Bitcoin applications, includes Bitcoin data structures, transaction signing, strongly typed `bitcoind`/Eclair RPC clients, and more. ## Swift libraries * [secp256k1.swift](https://github.com/GigaBitcoin/secp256k1.swift) - Swift package for secp256k1 applications, includes Elliptic Curve operations, Schnorr, ZKP and more for Bitcoin. ## .Net Libraries * [NBitcoin](https://github.com/MetacoSA/NBitcoin) - Comprehensive Bitcoin library for the .NET framework. * [BitcoinLib](https://github.com/cryptean/bitcoinlib) - The most complete, up-to-date, battle-tested .net Library and RPC Wrapper for Bitcoin and Altcoins in C#. ## Haskell Libraries * [Haskoin-core](https://github.com/haskoin/haskoin-core) - Haskoin Core is a library of Bitcoin and Bitcoin Cash functions written in Haskell. ## Playgrounds * [Script Playground](https://www.crmarsh.com/script-playground/) * [Bitcoin IDE](https://github.com/siminchen/bitcoinIDE) - Bitcoin Script for dummies. * [Script Debugger](https://github.com/kallewoof/btcdeb) * [Bitcore Playground](https://bitcore.io/playground/) * [Mnemonic Code generator](https://iancoleman.io/bip39/) * [blockchain-demo](https://github.com/anders94/blockchain-demo/) - A web-based demonstration of blockchain concepts. * [Bitcoin Script Debugger](https://github.com/liuhongchao/bitcoin4s) - Visualize Bitcoin script execution for real transactions. * [Bitauth IDE](https://ide.bitauth.com/) – An interactive development environment for Bitcoin contracts. * [ChainQuery Bitcoin RPC](https://chainquery.com) - Run select bitcoin RPC API calls and read full RPC docs in your browser. ## Blockchain dump * [WebBTC](http://dumps.webbtc.com/bitcoin/) - These are postgres database dumps of the bitcoin-ruby-blockchain database generated by webbtc.com. * [BitcoinDatabaseGenerator](https://github.com/ladimolnar/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](https://github.com/mcdee/blockparser) - Fast, quick and dirty bitcoin blockchain parser. * [BitcoinABE](https://github.com/bitcoin-abe/bitcoin-abe) - Abe: block browser for Bitcoin and similar currencies. * [Chaingraph](https://github.com/bitauth/chaingraph/) – A multi-node blockchain indexer and GraphQL API. ## Full nodes * [btcd](https://github.com/btcsuite/btcd/) - Go-based full node since 2013. * [Bitcoin-ruby-node](https://github.com/mhanne/bitcoin-ruby-node) - bitcoin node based on bitcoin-ruby-blockchain. * [Fullnode](https://github.com/moneybutton/yours-bitcoin) - Javascript implementation of bitcoin. * [Bitcore Node](https://github.com/bitpay/bitcore-node) - bitcoind linked to node.js by BitPay. * [Bitcore](https://github.com/bitpay/bitcore) - Formerly just a Nodejs library, now a full node. ## Read * [A Gentle Introduction to Bitcoin Core Development](https://medium.com/bitcoin-tech-talk/a-gentle-introduction-to-bitcoin-core-development-fdc95eaee6b8) * [Mastering Bitcoin](https://github.com/bitcoinbook/bitcoinbook) * [Grokking Bitcoin](https://www.manning.com/books/grokking-bitcoin) - An in-depth technical book with rich illustrations. * [Bitcoin Stackexchange](https://bitcoin.stackexchange.com) * [Elliptic Curve Cryptography A Gentle Introduction](https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/). * [Bitcoin Programming with BitcoinJS and Bitcoin Core CLI](https://github.com/bitcoin-studio/Bitcoin-Programming-with-BitcoinJS). * [Bitcoin Protocol Development Curriculum - Chaincode Labs](https://github.com/chaincodelabs/bitcoin-curriculum). * [Lightning Network Protocol Development Curriculum - Chaincode Labs](https://github.com/chaincodelabs/lightning-curriculum). * [btcinformation.org / Developer Documentation](https://btcinformation.org/en/developer-documentation) - Find useful resources, guides and reference material for developers. ## Course * [Bitcoin & Cryptocurrency](http://bitcoinbook.cs.princeton.edu/). ## Additional Resources * [@lopp / Bitcoin Developers](https://twitter.com/lopp/lists/bitcoin-developers) - Software developers who have experience working on Bitcoin implementations or applications. * [@lopp / Lightning Developers](https://twitter.com/i/lists/981976067551490048) - Software developers with experience working on LN implementations / applications. * [Practical Bitcoin Info - Google Sheets](https://docs.google.com/spreadsheets/d/1Z3Ofa4P8097VWV70Z_bMqIMladngvm-Ck24ot9TDNmw/). * [A brief history of Bitcoin development...](https://www.youtube.com/watch?v=ZfFNce6CVsE) * [bitcoin-resources.com](https://bitcoin-resources.com/) Meta-list of Bitcoin resources, from books, articles, to podcasts. * [Jameson Lopp Bitcoin Resource List](https://www.lopp.net/bitcoin-information.html) Very detailed curated Bitcoin resource list and meta-list by J. Lopp * [River Learn](https://river.com/learn) A collection of educational resources to learn about Bitcoin basics, investing, technology, and more. --- Inspired by the [awesome](https://github.com/sindresorhus/awesome) list thing. Created by BlockchainU fellows. --- ### License [![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) To the extent possible under law, [Igor Barinov](https://github.com/igorbarinov/) has waived all copyright and related or neighboring rights to this work.