OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Zkapp CLI

Zkapp CLI is an open-source command-line tool that scaffolds, writes, tests and prepares deployments for zero-knowledge applications on Mina Protocol using o1js and TypeScript.

Independent OpenViST project profile, based on linked sources.

Zkapp CLI — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use it when starting or structuring an o1js-based Mina zkApp project, adding standard source and test files, or preparing deployment settings for a Mina network.

Who it is for

  • Mina Protocol zkApp developers
  • TypeScript developers working with zero-knowledge smart contracts
  • Learners following Mina's zkApp tutorials and examples
  • Teams wanting a Git-based project template with testing and CI setup

Documented uses

  • Generate a Mina zkApp project from a standard template
  • Create source files together with test files
  • Build and test an o1js project locally
  • Create example projects from the Mina zkApps examples
  • Prepare network-specific deployment configuration
Before you choose

Requirements & limits

The CLI is installed globally with npm and is distributed from a public GitHub repository under the Apache-2.0 license. The documented environment requires Node.js 18 or later, npm 10 or later and Git 2 or later.

  • It is specialized for Mina Protocol zkApps rather than general-purpose blockchain application scaffolding.
  • o1js is automatically included in projects created by the CLI.
  • Generated projects include Git initialization, a GitHub Actions CI workflow, Prettier formatting and ESLint checks with Git pre-commit hooks.
  • Deployment configuration requires a Mina GraphQL API URL, a transaction fee, a zkApp key pair and a fee-payer account.
  • The tool is command-line based and intended for a self-managed development environment.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Create a Mina zkApp project

Set up a local project template for Mina zkApp development.

Before you start

  • Node.js v18 or later
  • npm v10 or later
  • Git v2 or later

Steps

  1. Install the CLI globally with npm install -g zkapp-cli.

  2. Confirm the installation with zk --version.

  3. Create a project with zk project my-proj, or provide another project path.

  4. Enter the project directory and use the generated README for the available build and test commands.

Expected outcome

A new project directory is created with o1js, npm setup, a Git repository, a standard template and development configuration.

Guide limitations

  • This recipe covers project creation and local setup; it does not document a completed deployment.
  • The command requires the listed Node.js, npm and Git versions.
Source-based practical guide

Prepare a deployment configuration

Create or update a deployment alias for a Mina zkApp.

Before you start

  • A generated zkApp project
  • A Mina GraphQL API URL for the target network
  • A transaction fee in MINA
  • A zkApp key pair
  • A fee-payer account and key pair

Steps

  1. Run zk config in the project.

  2. Respond to the interactive prompts to create or update a deploy alias.

  3. Provide the network's Mina GraphQL API URL and transaction fee.

  4. Select or recover a fee-payer account when prompted.

Expected outcome

The project's config.json contains deployment-related settings for the selected alias, including network, fee and account information.

Guide limitations

  • A fee-payer account is required for updates and deployments.
  • The documented configuration stage does not by itself establish that a deployment transaction was broadcast or confirmed.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
3 October 2026
Original website title
o1-labs/zkapp-cli · Official homepage title · retained in its source language