Install the CLI

StreamingFast Substreams CLI installation documentation

Install the substreams CLI

Used for connecting to endpoints, streaming data in real time, and packaging custom modules.

Homebrew installation

brew install streamingfast/tap/substreams

Pre-compiled binary installation

There are several CLI binaries available for different operating systems. Choose the correct platform in the CLI releases page.

If you are on MacOS, you can use the following command:

LINK=$(curl -s https://api.github.com/repos/streamingfast/substreams/releases/latest | awk "/download.url.*$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m)/ {print \$2}" | sed 's/"//g')
curl -L  $LINK  | tar zxf -

If you are on Linux, you can use the following command:

# Use correct binary for your platform
LINK=$(curl -s https://api.github.com/repos/streamingfast/substreams/releases/latest | awk "/download.url.*linux_$(uname -m)/ {print \$2}" | sed 's/"//g')
curl -L  $LINK  | tar zxf -

Installation from source

git clone https://github.com/streamingfast/substreams
cd substreams
go install -v ./cmd/substreams

Important: Add $HOME/go/bin to the system path if it's not already present.

Validation of installation

Run the substreams CLI passing the --version flag to check the success of the installation.

substreams --version

A successful installation will print the version that you have installed.

substreams version dev

Note: You can also use Gitpod instead of a local installation.

Install Other Developer Dependencies (Only for Substreams Developers)

If you plan to build your own Substreams (i.e. write Rust code to extract data from the blockchain), you will need several dependencies to set up your developer environment:

Tip: Instructions are also provided for cloud-based Gitpod setups.

Rust installation

Developing Substreams modules requires a working Rust compilation environment.

There are several ways to install Rust. Install Rust through curl by using:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env # to configure your current shell

wasm32-unknown-unknown target

Ensure you have the wasm32-unknown-unknown target installed on your Rust installation, if unsure, you can install it with:

rustup target add wasm32-unknown-unknown

Buf installation

Buf simplifies the generation of typed structures in any language. Buf uses a remote builder executed on the Buf server, so an internet connection is required to generate Rust bindings from Protobuf definitions.

Visit the Buf website for additional information and installation instructions.

Note: Substreams packages and Buf images are compatible.

Last updated