The Leo Command Line Interface
The Leo CLI is a command line interface tool that comes equipped with the Leo compiler.
Installationβ
Global Flagsβ
-d
,--debug
- Enables debugging mode-h
,--help
- Prints help information-V
,--version
- Prints version information
List of Commands:β
You can print the list of commands by running leo --help
example
- Create a new Leo package from an example program.new
- Create a new Leo package in a new directory.build
- Compile the current package as a program.run
- Run a program with input variables.execute
- Execute a program with input variables.clean
- Clean the output directory.update
- Update to the latest version of Leo.account
- Create a new Aleo account.
leo example
β
To list all available example programs, run:
leo example
# Output:
Create a new Leo example package in a new directory
Usage: leo example [OPTIONS] <COMMAND>
Commands:
lottery A public lottery program
tictactoe A standard tic-tac-toe game program
token A transparent & shielded custom token program
help Print this message or the help of the given subcommand(s)
Options:
-d Print additional information for debugging
-q Suppress CLI output
--path <PATH> Optional path to Leo program root folder
-h, --help Print help
To create a new Leo package from an example program, run:
leo example {$NAME}
leo new
β
To create a new package, run:
leo new {$NAME}
Valid package names are snake_case: lowercase letters and numbers separated by underscores. This command will create a new directory with the given package name. The new package will have a directory structure as follows:
package/
βββ .env # Your program environment
βββ program.json # Your program manifest
βββ README.md # Your program description
βββ build/
βββ inputs/
β βββ hello.in # Your program inputs
βββ src/
βββ main.leo # Your program file
leo build
β
This command is deprecated as of Leo v1.9.0
. It will be removed in a future release.
To compile your program into Aleo Instructions and verify that it builds properly, run:
leo build
This will populate the directory build/
(creating it if it doesn't exist) with an Aleo instructions file .aleo
.
Leo β
Compiled 'main.leo' into Aleo instructions
leo run
β
Use this command to run your program before executing it.
To run a Leo transition function using inputs from the program input .in
file.
leo run {$TRANSITION}
To run a Leo transition function with inputs from the command line.
{$INPUTS}
should be a list of inputs to the program separated by spaces.
leo run {$TRANSITION} {$INPUTS}
This command does not synthesize the program circuit or generate proving and verifying keys.
Leo β
Compiled 'main.leo' into Aleo instructions
β Constraints
β’ 'hello.aleo/main' - 35 constraints (called 1 time)
β‘οΈ Output
β’ 3u32
Leo β
Finished 'hello.aleo/main' (in "/hello/build")
leo execute
β
Use this command to execute your program and generate a transaction object.
To execute a Leo transition function using inputs from the program input .in
file.
leo execute {$TRANSITION}
To execute a Leo transition function with inputs from the command line.
{$INPUTS}
should be a list of inputs to the program separated by spaces.
leo execute {$TRANSITION} {$INPUTS}
This command synthesizes the program circuit and generates proving and verifying keys.
Leo β
Compiled 'main.leo' into Aleo instructions
β Constraints
β’ 'hello.aleo/main' - 35 constraints (called 1 time)
β‘οΈ Output
β’ 3u32
{"type":"execute","id":"at1 ... (transaction object truncated for brevity)
Leo β
Executed 'hello.aleo/main' (in "/hello/build")
leo clean
β
To clean the build directory, run:
leo clean
Leo cleaned the build directory (in "/build/")
leo update
β
To download and install the latest Leo version run:
leo update
Checking target-arch... x86_64-apple-darwin
Checking current version... v1.8.3
Checking latest released version... v1.8.3
Updating Leo is on the latest version 1.9.0
leo account
β
To create a new Aleo account, run:
leo account new
# Output:
Private Key APrivateKey1zkp...
View Key AViewKey1...
Address aleo1...
To import an existing Aleo account, run:
leo account import {$PRIVATE_KEY}
To create a new account and save it to your .env file, run:
leo account new --write
To list all options
leo account --help
# Output:
Create a new Aleo account
Usage: leo account [OPTIONS] <COMMAND>
Commands:
new Generates a new Aleo account
import Derive an Aleo account from a private key
help Print this message or the help of the given subcommand(s)
Options:
-d Print additional information for debugging
-q Suppress CLI output
--path <PATH> Optional path to Leo program root folder
-h, --help Print help