Reference full-node implementation of the Bitcoin protocol, connecting to the peer-to-peer network to validate blocks and transactions.
btcsuite/btcd
An alternative full node Bitcoin implementation written in Go that validates and serves the block chain without wallet functionality.
- Stars
- 6,718
- Forks
- 2,533
- Open issues
- 380
- Last commit
- 16 days ago
What is it?
btcd is a Bitcoin full node implementation in Go. It downloads, validates and serves the block chain, applying the same block acceptance rules as Bitcoin Core, including its consensus quirks. It also relays newly mined blocks, maintains a transaction pool, and relays individual transactions that have not yet been mined, applying standardness checks in addition to consensus rules.
Unlike Bitcoin Core, btcd deliberately omits wallet functionality, so it cannot send or receive payments by itself. Wallet features are provided by separate projects in the same organization, such as btcwallet. The project has been in production use since 2013 and runs a block validation test suite on each pull request.
btcd is built with the standard Go toolchain and installs via go install. Its ISC license is permissive, and it is intended for developers who want a Go-based node to integrate with or build infrastructure around.
Key features
- 01Downloads, validates and serves the Bitcoin block chain using Bitcoin Core's block acceptance rules.
- 02Relays newly mined blocks and individual unconfirmed transactions to peers.
- 03Maintains a transaction pool with standardness checks applied.
- 04Contains no wallet functionality; payments are handled by separate projects such as btcwallet.
- 05Passes Bitcoin Core's JSON test data and runs a block validation test suite on pull requests.
Use cases
- Running a Bitcoin full node written in Go.
- Building services or tools that need to read and validate the Bitcoin block chain.
- Pairing a node with a separate wallet such as btcwallet for payment handling.
Quick start
- 1
Ensure Go 1.26.10 or newer is installed
go version - 2
Install btcd and its utilities with go install
go install -v . ./cmd/... - 3
Run btcd with zero configuration
./btcd
Things to know
- btcd does not include wallet functionality, so you cannot make or receive payments with it alone.
- Building from source requires a recent Go toolchain and a checkout of the repository.
Topics
FAQ
- What is btcd?
- An alternative full node Bitcoin implementation written in Go that validates and serves the block chain without wallet functionality. btcd is a Bitcoin full node implementation in Go. It downloads, validates and serves the block chain, applying the same block acceptance rules as Bitcoin Core, including its consensus quirks. It also relays newly mined blocks, maintains a transaction pool, and relays individual transactions that have not yet been mined, applying standardness checks in addition to consensus rules.
- Is btcd free to use? What license does it have?
- btcd is open source under the ISC license. Check the license terms before using it in commercial products.
- Is btcd still maintained?
- Actively maintained. The last commit to btcd was on Oct 21, 2026.
- What can I use btcd for?
- Running a Bitcoin full node written in Go. Building services or tools that need to read and validate the Bitcoin block chain. Pairing a node with a separate wallet such as btcwallet for payment handling.
- How do I install btcd?
- Ensure Go 1.26.10 or newer is installed: go version Install btcd and its utilities with go install: go install -v . ./cmd/... Run btcd with zero configuration: ./btcd
- Where can I get btcd?
- The source code and installation instructions are on GitHub: https://github.com/btcsuite/btcd
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Bitcoin full node written in Rust, with a relational archive instead of a UTXO set and Electrum serving built in.
An independent Bitcoin full node written in Rust, with Core-compatible P2P and RPC interfaces and embeddable node components.
Dash Core is the open-source node and wallet software for the Dash peer-to-peer digital currency, built for instant, private payments.
Python implementation of the Chia blockchain, including full node, farmer, harvester, timelord and wallet components.
Rust implementation of the Kaspa full node, plus wallet CLI, WASM SDK and wRPC libraries for the Kaspa blockchain.