btcd is a fully compliant, alternative Bitcoin full node implementation written in Go, designed for blockchain validation and network participation without wallet functionality.
An alternative full node bitcoin implementation written in Go (golang)
btcd is used by developers and operators who need a stable, production-ready Bitcoin full node that strictly follows Bitcoin Core consensus rules for block validation and transaction relay. It is ideal for those who want to run a Bitcoin node without wallet features, focusing on blockchain data integrity, network participation, and custom Bitcoin infrastructure development.
btcd intentionally excludes wallet functionality to separate concerns; users requiring wallet features should use complementary projects like btcwallet or Paymetheus. Proper Go environment setup is critical to avoid build and permission issues. The project is stable and production-ready but still under active development and considered Beta.
Install Go 1.22 or newer from http://golang.org/doc/install
Verify Go installation with `go version` and `go env GOROOT GOPATH`
Ensure GOROOT and GOPATH are different paths; set GOPATH to a directory like ~/goprojects
Add $GOPATH/bin to your system PATH
Clone the repository into $GOPATH/src/github.com/btcsuite/btcd
Run `go install -v . ./cmd/...` to build and install btcd and utilities
Run `./btcd` to start the node with default configuration
./btcd
Starts the btcd Bitcoin full node with default settings
cd $GOPATH/src/github.com/btcsuite/btcd
Navigate to the btcd source directory for building or updating
go install -v . ./cmd/...
Builds and installs btcd and its command-line utilities
git pull
Updates the local btcd repository to the latest version