The Leo Command Line Interface
The Leo CLI is a command line interface tool that comes equipped with the Leo compiler. It contains a number of helpful
You can print the list of commands by running leo --help
Commands
account
- Create a new Aleo account, sign and verify messages.new
- Create a new Leo project in a new directory.build
- Compile the current project.deploy
- Generate proving and verifying keys and produce a transaction contianing the deployment.run
- Run a program without producing a proof.execute
- Execute a program and produce a transaction containing a proof.debug
- Run the interactive debugger in the current package.query
- Retrieve metadata and state from the network.add
- Add a new on-chain or local dependency to the current project.remove
- Remove a dependency from the current project.clean
- Clean the build and output artifacts.update
- Update to the latest version of Leo.
leo account
To create a new Aleo account, run:
leo account new
Private Key APrivateKey1zkp...
View Key AViewKey1...
Address aleo1...
We urge you to exercise caution when managing your private keys. leo account
cannot be used to recover lost keys.
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
leo account
has a number of additional subomcommands. To list all options, run:
leo account --help
# Output:
Create a new Aleo account, sign and verify messages
Usage: leo account [OPTIONS] <COMMAND>
Commands:
new Generates a new Aleo account
import Derive an Aleo account from a private key
sign Sign a message using your Aleo private key
verify Verify a message from an Aleo address
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
--home <HOME> Optional path to aleo program registry.
-h, --help Print help
To learn more about how to use leo account
to sign and verify messages, check out Sign and Verify.
leo new
To create a new project, run:
leo new {$NAME}
Valid project names are snake_case: lowercase letters and numbers separated by underscores. This command will create a new directory with the given project name.
See Project Layout for more details .
leo build
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 deploy
Use this command to deploy a program to the Aleo network. This requires having a funded account.
To deploy the project in the current working directory.
leo deploy // Defaults to using key information in `.env`, and deploys to `testnet3` via endoint `http://api.explorer.provable.com/v1`.
leo deploy --endpoint "{$ENDPOINT}" --private-key "{$PRIVATE_KEY}" // To deploy using custom private key, to a custom endpoint (e.g. local devnet `http://0.0.0.0:3030`).
See Deploy for more details.
leo run
Use this command to run your program before executing it.
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' - 33 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 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' - 33 constraints (called 1 time)
➡️ Output
• 3u32
{"type":"execute","id":"at1 ... (transaction object truncated for brevity)
Leo ✅ Executed 'hello.aleo/main' (in "/hello/build")
See Execute for more details.
leo debug
To start the interactive debugger, run leo debug
in a Leo project.
> leo debug
Leo ✅ Compiled sources for 'workshop'
This is the Leo Interpreter. Try the command `#help`.
? Command? ›
See Debugging for more details.
leo query
Use leo query
to get data from a network supporting the canonical snarkOS
endpoints.
Query live data from the Aleo network
Usage: leo query [OPTIONS] <COMMAND>
Commands:
block Query block information
transaction Query transaction information
program Query program source code and live mapping values
stateroot Query the latest stateroot
committee Query the current committee
mempool Query transactions and transmissions from the memory pool
peers Query peer information
help Print this message or the help of the given subcommand(s)
Options:
-d Print additional information for debugging
-e, --endpoint <ENDPOINT> Endpoint to retrieve network state from. Defaults to entry in `.env`.
-n, --network <NETWORK> Network to use. Defaults to entry in `.env`.
-q Suppress CLI output
--path <PATH> Path to Leo program root folder
--home <HOME> Path to aleo program registry
-h, --help Print help
leo add
Use this command to add a dependency to your program. This is a precursor to being able to import a program inside the leo source code file.
The command can be used to add an already deployed program as a project dependency.
{$PROGRAM}
should be the name of the program to add as a dependency.
leo add {$PROGRAM} // {$NETWORK} defaults to `testnet`.
leo add -n {$NETWORK} {$PROGRAM} // To pull from a custom network.
The command can be used to add a local Leo program as a project dependency.
{$PATH}
should be the relative path to the project directory.
leo add -l {$PATH} {$PROGRAM}
See Dependency Management for more details.
leo remove
Removes the dependency, local or remote, from the project.
leo remove credits.aleo
See Dependency Management for more details.
leo clean
To clean the build directory, run:
leo clean
Leo 🧹 Cleaned the outputs directory (in "...")
Leo 🧹 Cleaned the build directory (in "...")
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 example
leo example
has been deprecated and will no longer be supported.