Algorand's official implementation in Go.
See the codeAlgorand's official implementation in Go.
Algorand is a permissionless, pure proof-of-stake blockchain that delivers decentralization, scalability, security, and transaction finality.
Visit our developer website for the most up-to-date information about using and installing the Algorand platform.
Development is done using the Go Programming Language. The Go version is specified in the project's go.mod file. This document assumes you have a functioning environment set up. If you need assistance setting up an environment, please visit the official Go documentation website.
We currently strive to support Debian-based distributions, with Ubuntu 24.04 as our official release target. Building on Arch Linux also works well. Our core engineering team uses Linux and OSX, so both environments are well-supported for development.
OSX Only: Homebrew (brew) must be installed before continuing. Here are the installation requirements.
git clone https://github.com/algorand/go-algorand
cd go-algorand
./scripts/configure_dev.sh
At this point, you are ready to build go-algorand. We use make and have several targets to automate common tasks.
make install
# Unit tests
make test
# Integration tests
make integration
make fmt
make lint
make fix
make vet
Alternatively, run:
make sanity
Once the software is built, you'll find binaries in ${GOPATH}/bin, and a data directory will be initialized at ~/.algorand. Start your node with:
${GOPATH}/bin/goal node start -d ~/.algorand
Use:
${GOPATH}/bin/carpenter -d ~/.algorand
to see activity. Refer to the developer website for instructions on using different tools.
You can run a node out of other directories than ~/.algorand and join networks other than mainnet. Just make a new directory and copy the genesis.json file for the network into it. For example:
mkdir ~/testnet_data
cp installer/genesis/testnet/genesis.json ~/testnet_data/genesis.json
${GOPATH}/bin/goal node start -d ~/testnet_data
Genesis files for mainnet, testnet, and betanet can be found in installer/genesis/.
Please refer to our CONTRIBUTING document.
go-algorand is organized into various subsystems and packages:
Provides core functionality to the algod and kmd daemons, as well as other tools and commands:
algod processes to query one another.Contains the two daemons that provide Algorand clients with services:
algod daemon, which implements a participating node. algod allows a node to participate in the agreement protocol, submit and confirm transactions, and view the state of the Algorand Ledger.
algod.kmd daemon, which allows a node to sign transactions. Since kmd is separate from algod, it enables a user to sign transactions on an air-gapped computer.Enables developers to interface with the Algorand system:
Helps Algorand developers deploy networks of their own:
Provides utilities for the various components:
logrus.Please see the COPYING_FAQ for details on how to apply our license.
Copyright (C) 2019-2026, Algorand Foundation Ltd.
1,976 followers · starred May 2021
348 followers · starred May 2025
111 followers · starred Aug 2019
233 followers · starred Jul 2019
Algorand's official implementation in Go.
See the codeAlgorand's official implementation in Go.
Algorand is a permissionless, pure proof-of-stake blockchain that delivers decentralization, scalability, security, and transaction finality.
Visit our developer website for the most up-to-date information about using and installing the Algorand platform.
Development is done using the Go Programming Language. The Go version is specified in the project's go.mod file. This document assumes you have a functioning environment set up. If you need assistance setting up an environment, please visit the official Go documentation website.
We currently strive to support Debian-based distributions, with Ubuntu 24.04 as our official release target. Building on Arch Linux also works well. Our core engineering team uses Linux and OSX, so both environments are well-supported for development.
OSX Only: Homebrew (brew) must be installed before continuing. Here are the installation requirements.
git clone https://github.com/algorand/go-algorand
cd go-algorand
./scripts/configure_dev.sh
At this point, you are ready to build go-algorand. We use make and have several targets to automate common tasks.
make install
# Unit tests
make test
# Integration tests
make integration
make fmt
make lint
make fix
make vet
Alternatively, run:
make sanity
Once the software is built, you'll find binaries in ${GOPATH}/bin, and a data directory will be initialized at ~/.algorand. Start your node with:
${GOPATH}/bin/goal node start -d ~/.algorand
Use:
${GOPATH}/bin/carpenter -d ~/.algorand
to see activity. Refer to the developer website for instructions on using different tools.
You can run a node out of other directories than ~/.algorand and join networks other than mainnet. Just make a new directory and copy the genesis.json file for the network into it. For example:
mkdir ~/testnet_data
cp installer/genesis/testnet/genesis.json ~/testnet_data/genesis.json
${GOPATH}/bin/goal node start -d ~/testnet_data
Genesis files for mainnet, testnet, and betanet can be found in installer/genesis/.
Please refer to our CONTRIBUTING document.
go-algorand is organized into various subsystems and packages:
Provides core functionality to the algod and kmd daemons, as well as other tools and commands:
algod processes to query one another.Contains the two daemons that provide Algorand clients with services:
algod daemon, which implements a participating node. algod allows a node to participate in the agreement protocol, submit and confirm transactions, and view the state of the Algorand Ledger.
algod.kmd daemon, which allows a node to sign transactions. Since kmd is separate from algod, it enables a user to sign transactions on an air-gapped computer.Enables developers to interface with the Algorand system:
Helps Algorand developers deploy networks of their own:
Provides utilities for the various components:
logrus.Please see the COPYING_FAQ for details on how to apply our license.
Copyright (C) 2019-2026, Algorand Foundation Ltd.
1,976 followers · starred May 2021
348 followers · starred May 2025
111 followers · starred Aug 2019
233 followers · starred Jul 2019