Skip to main content

leo synthesize

This command is used to generate proving and verifying keys for all transitions in a local or remote Leo program, along with circuit metadata.

leo synthesize <PROGRAM_NAME> --save <SAVE_DIRECTORY>

Each output of this command includes:

  • Number of public inputs
  • Number of variables
  • Number of constraints
  • Non-zero entries in matrices
  • Circuit ID
  • Proving and verifying keys saved to disk

This enables better understanding of program size and key management.

Flags:

--network <NETWORK>

Specifies the network to deploy to. Overrides any NETWORK environment variable set manually or in a .env file. Valid network names are testnet, mainnet, and canary.

--endpoint <ENDPOINT>

The endpoint to deploy to. Overrides any ENDPOINT environment variable set manually or in a .env file.

--local

-l

Specifies that the keys should be generated for the local Leo project in the current working directory.

--skip <SKIP>

-s <SKIP>

Specifies to skip the key generation for any function names that contain the provided substrings

--save <SAVE_DIRECTORY>

The directory to save the key files to. If the provided path does not exist, it will be created in your current working directory.