Skip to main content


ยท 2 min read
Marcos Maceo

Juno is a Go implementation of a StarkNet full node client made with โค๏ธ by Nethermind.

What You'll Needโ€‹

  • Golang version 1.18 for build and run the project.
  • For Linux: You will need to install clang:
  • Python 3.7
sudo apt -y install clang


Installing Pythonโ€‹

Python 3.7 is the only supported version and it is recommended you use pyenv using the following instructions:

  1. Install dependencies:
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

  1. Install pyenv:
curl | bash
  1. Add the following entries into your ~/.bashrc file:
# pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
  1. Restart your shell:
exec $SHELL
  1. Install python 3.7:
pyenv install 3.7.13
pyenv global 3.7.13

Installing Go dependenciesโ€‹

After cloning the project,

git clone

You can install all the dependencies by running the next command inside the project root folder:

$ go get ./...

Running Junoโ€‹

Compiling Directlyโ€‹

Compile Juno:

$ make juno

To synchronize with the StarkNet state from the centralized feeder gateway, run the following command:

# For Ethereum Goerli testnet
$ ./build/juno

# For Ethereum Mainnet
$ ./build/juno --netowrk 1

To sync the state without relying on the feeder gateway, configure an Ethereum node and run the following command:

# For Ethereum Goerli testnet
$ ./build/juno --eth-node "<node-endpoint>"

# For Ethereum Mainnet
$ ./build/juno --netowrk 1 --eth-node "<node-endpoint>"

To view other available options please run ./build/juno -h.

For more configuration details, check the config description.

Using Dockerโ€‹

If you prefer to use docker, you can follow this guide.