Installation

There are two approaches to install Nargo:

Optionally you can also install Noir VS Code extension for syntax highlighting.

Option 1: Binaries

Step 1

Paste and run the following in the terminal to extract and install the binary:

macOS / Linux: If you are prompted with Permission denied when running commands, prepend sudo and re-run it.

macOS (Apple Silicon)

mkdir -p $HOME/.nargo/bin && \
curl -o $HOME/.nargo/bin/nargo-aarch64-apple-darwin.tar.gz -L https://github.com/noir-lang/noir/releases/download/nightly/nargo-aarch64-apple-darwin.tar.gz && \
tar -xvf $HOME/.nargo/bin/nargo-aarch64-apple-darwin.tar.gz -C $HOME/.nargo/bin/ && \
echo '\nexport PATH=$PATH:$HOME/.nargo/bin' >> ~/.zshrc && \
source ~/.zshrc

macOS (Intel)

mkdir -p $HOME/.nargo/bin && \
curl -o $HOME/.nargo/bin/nargo-x86_64-apple-darwin.tar.gz -L https://github.com/noir-lang/noir/releases/download/nightly/nargo-x86_64-apple-darwin.tar.gz && \
tar -xvf $HOME/.nargo/bin/nargo-x86_64-apple-darwin.tar.gz -C $HOME/.nargo/bin/ && \
echo '\nexport PATH=$PATH:$HOME/.nargo/bin' >> ~/.zshrc && \
source ~/.zshrc

Windows (PowerShell)

Open PowerShell as Administrator and run:

mkdir -f -p "$env:USERPROFILE\.nargo\bin\"; `
Invoke-RestMethod -Method Get -Uri https://github.com/noir-lang/noir/releases/download/nightly/nargo-x86_64-pc-windows-msvc.zip -Outfile "$env:USERPROFILE\.nargo\bin\nargo-x86_64-pc-windows-msvc.zip"; `
Expand-Archive -Path "$env:USERPROFILE\.nargo\bin\nargo-x86_64-pc-windows-msvc.zip" -DestinationPath "$env:USERPROFILE\.nargo\bin\"; `
$Reg = "Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment"; `
$OldPath = (Get-ItemProperty -Path "$Reg" -Name PATH).Path; `
$NewPath = $OldPath + ’;’ + "$env:USERPROFILE\.nargo\bin\"; `
Set-ItemProperty -Path "$Reg" -Name PATH –Value "$NewPath"; `
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

Linux (Bash)

See GitHub Releases for additional platform specific binaries.

mkdir -p $HOME/.nargo/bin && \
curl -o $HOME/.nargo/bin/nargo-x86_64-unknown-linux-gnu.tar.gz -L https://github.com/noir-lang/noir/releases/download/nightly/nargo-x86_64-unknown-linux-gnu.tar.gz && \
tar -xvf $HOME/.nargo/bin/nargo-x86_64-unknown-linux-gnu.tar.gz -C $HOME/.nargo/bin/ && \
echo '\nexport PATH=$PATH:$HOME/.nargo/bin' >> ~/.bashrc && \
source ~/.bashrc

Step 2

Check if the installation was successful by running nargo --help.

macOS: If you are prompted with an OS alert, right-click and open the nargo executable from Finder. Close the new terminal popped up and nargo should now be accessible.

For a successful installation, you should see something similar to the following after running the command:

$ nargo --help
Noir's package manager

Usage: nargo <COMMAND>

Commands:
  check             Checks the constraint system for errors
  codegen-verifier  Generates a Solidity verifier smart contract for the program
  compile           Compile the program and its secret execution trace into ACIR format
  new               Create a new binary project
  execute           Executes a circuit to calculate its return value
  prove             Create proof for this program. The proof is returned as a hex encoded string
  verify            Given a proof and a program, verify whether the proof is valid
  test              Run the tests for this program
  gates             Counts the occurrences of different gates in circuit
  help              Print this message or the help of the given subcommand(s)

Option 2: Compile from Source

Setup

  1. Install Git and Rust.

  2. Download Noir's source code from Github by running:

    git clone [email protected]:noir-lang/noir.git
    
  3. Change directory into the Noir project by running:

    cd noir
    

There are then two approaches to proceed, differing in how the proving backend is installed:

Option 2.1: Install Executable with WASM backend

  1. Install Nargo by running:

    cargo install --locked --path=crates/nargo --no-default-features --features plonk_bn254_wasm
    

Option 2.2: Install Executable with Native Backend

The barretenberg proving backend is written in C++, hence compiling it from source would first require certain dependencies to be installed.

  1. Install CMake, LLVM and OpenMP:

    macOS

    Installing through Homebrew is recommended:

    brew install cmake llvm libomp
    

    Ubuntu (Linux)

    sudo apt update && sudo apt install clang lld cmake libomp-dev
    

    Other variants of Linux will need to adjust the commands for their package manager.

    Windows

    TBC
    
  2. Install Nargo by running:

    cargo install --locked --path=crates/nargo
    

Verify Installation

  1. Check if the installation was successful by running nargo --help:

    $ nargo --help
    Noir's package manager
    
    Usage: nargo <COMMAND>
    
    Commands:
      check             Checks the constraint system for errors
      codegen-verifier  Generates a Solidity verifier smart contract for the program
      compile           Compile the program and its secret execution trace into ACIR format
      new               Create a new binary project
      execute           Executes a circuit to calculate its return value
      prove             Create proof for this program. The proof is returned as a hex encoded string
      verify            Given a proof and a program, verify whether the proof is valid
      test              Run the tests for this program
      gates             Counts the occurrences of different gates in circuit
      help              Print this message or the help of the given subcommand(s)