cli

module
v30.0.0-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2026 License: Apache-2.0

README

Ignite

Ignite CLI

Ignite CLI is the all-in-one platform to build, launch, and maintain gno.land smart contracts. It is a developer-friendly interface to gno.land, the smart contract platform from the Ignite team. Ignite CLI offers everything you need to scaffold, test, build, and launch your realms and packages.

Ignite CLI also ships the Cosmos SDK tooling under ignite cosmos for building sovereign blockchains.

Quick start

Scaffold a realm and start a local gno.land dev chain:

ignite scaffold realm counter
cd counter
ignite chain serve

The dev chain runs on tcp://127.0.0.1:26657, pre-funds the test1 developer account, deploys your realm at genesis, and reloads the chain on every .gno file change.

Interact with the running chain:

ignite chain call gno.land/r/counter Increment   # invoke a realm function
ignite chain query "gno.land/r/counter.Get()"   # read-only expression
ignite chain send g1... 10000000ugnot            # fund an account
ignite chain test                               # run _test.gno tests

Generate a typed TypeScript client for the realm (built on gno-js-client):

ignite generate ts-client

Deploy a package to any gno.land chain (module path read from gnomod.toml):

ignite chain deploy --from test1 --remote 127.0.0.1:26657

Manage keys (stored in the gno keybase, ~/.config/gno):

ignite account create alice
ignite account list
ignite account export alice --output alice.asc

Installation

Install Ignite using Homebrew on macOS and GNU/Linux:

brew install ignite

Or manually using the following command:

curl https://get.ignite.com/cli! | bash
Troubleshoot

If Ignite doesn't automatically move to your /usr/local/bin directory, use the following command:

sudo mv ignite /usr/local/bin

If you encounter an error, you may need to create the /usr/local/bin directory and set the necessary permissions:

mkdir /usr/local/bin
sudo chown -R $(whoami) /usr/local/bin

To create and start a blockchain:

ignite scaffold chain mars

cd mars

ignite chain serve

The instructions for installing Ignite CLI manually and configuring your system are provided below.

View development setup instructions
Supported Operating Systems
  • GNU/Linux
  • macOS
Install Go
  1. Install the latest version of Go.
  2. Download the release suitable for your system.
  3. Follow the installation instructions.

Note: We recommend not using brew to install Go.

Add the Go bin Directory to Your PATH
  1. Edit your ~/.bashrc file and add the following line:

    export PATH=$PATH:$(go env GOPATH)/bin
    
  2. Apply the changes:

    source ~/.bashrc
    
Remove Existing Ignite CLI Installations
  1. Remove the Ignite CLI binary:

    rm $(which ignite)
    

    You may need to run this with sudo.

  2. Repeat the step until all Ignite CLI installations are removed.

Install Ignite CLI
curl https://get.ignite.com/cli! | bash
Clone the Ignite CLI Repo
  1. Clone the repository:

    git clone --depth=1 git@github.com:ignite/cli.git
    
  2. Change to the cli directory:

    cd cli
    
Run make install
make install
Verify Your Ignite CLI Version
ignite version

Alternatively, you can open Ignite CLI directly in your web browser via GitHub Codespaces: Open in GitHub Codespaces.

Documentation

To learn how to use Ignite CLI, check out the Ignite CLI docs. To learn more about how to build blockchain apps with Ignite CLI, see the Ignite CLI Developer Tutorials.

To install Ignite CLI locally on GNU, Linux, or macOS, see Install Ignite CLI.

To learn more about building a JavaScript frontend for your Cosmos SDK blockchain, see ignite/web.

Questions

For questions and support, ask easily on GitHub Discussions. The issue list in this repo is exclusively for bug reports and feature requests.

Cosmos SDK compatibility

The Cosmos SDK tooling lives under ignite cosmos. Blockchains created with it use the Cosmos SDK framework. To ensure the best possible experience, use the version of Ignite CLI that corresponds to the version of Cosmos SDK that your blockchain is built with. Unless noted otherwise, a row refers to a minor version and all associated patch versions.

Ignite CLI Cosmos SDK IBC Notes
v30.x.y v0.53.x v10.4.0 Cosmos SDK tooling under ignite cosmos.
v29.x.y v0.50.x & v0.53.x v10.2.0 Originally in v0.53.x. Can work with v0.50.x.
v28.x.y v0.50.x & v0.53.x v8.0.0 Originally in v0.50.x. Can work with v0.53.x.
v0.27.1 v0.47.3 v7.1.0 -
v0.26.0 v0.46.7 v6.1.0 -
v0.25.2 v0.46.6 v5.1.0 Bump Tendermint version to v0.34.24
v0.25.1 v0.46.3 v5.0.0 Includes Dragonberry security fix
v0.24.0 v0.46.0 v5.0.0 This version is deprecated due to a security fix in v0.25.0
v0.23.0 v0.45.5 v3.0.1
v0.21.1 v0.45.4 v2.0.3 Supports Cosmos SDK v0.46.0-alpha1 and above
v0.21.0 v0.45.4 v2.0.3
v0.20.0 v0.45.3 v2.0.3
v0.19 v0.44 v1.2.2
v0.18 v0.44 v1.2.2 ignite chain serve works with v0.44.x chains
v0.17 v0.42 Same with Cosmos SDK

To upgrade your blockchain to the newer version of Cosmos SDK, see the Migration guide.

Ignite Apps

Ignite Apps aims to extend the functionality of Ignite CLI, offering both official and community-contributed integrations. These integrations are designed to streamline development processes and offer valuable insights for blockchain app developers.

Discover Ignite Apps

You can discover available Ignite Apps in the Ignite Marketplace. The marketplace features a variety of apps that can enhance your development experience, including tools for scaffolding, deploying, and more.

How to Install an Ignite App

ignite app install -g github.com/ignite/apps/[app-name]

The ignite app list command allows to list the plugins and their status, and to update a plugin if you need to get the latest version.

How to Create an App

Scaffold your Ignite app with one simple command:

ignite scaffold app path/to/your/app

Afterwards, install using:

ignite app install -g path/to/your/app

For more information, refer to Creating Ignite Apps.

Also check out the section of our example Apps.

Contributing to Ignite CLI

We welcome contributions from everyone. The main branch contains the development version of the code. You can create a branch from main and create a pull request, or maintain your own fork and submit a cross-repository pull request.

Our Ignite CLI bounty program provides incentives for your participation and pays rewards. Track new, in-progress, and completed bounties in the GitHub Issues board.

Important Before you start implementing a new Ignite CLI feature, the first step is to create an issue on GitHub that describes the proposed changes.

If you're not sure where to start, check out contributing.md for our guidelines and policies for how we develop Ignite CLI. Thank you to everyone who has contributed to Ignite CLI!

Community

Ignite CLI is a free and open source product maintained by Ignite. Here's where you can find us. Stay in touch.

Directories

Path Synopsis
ignite
cmd
cmd/ignite command
internal/tools/gen-cli-docs command
this tool generates Ignite CLI docs to be placed in the docs/cli dir and deployed on docs.ignite.com
this tool generates Ignite CLI docs to be placed in the docs/cli dir and deployed on docs.ignite.com
pkg/chaincmd/runner
Package chaincmdrunner provides high level access to a blockchain's commands.
Package chaincmdrunner provides high level access to a blockchain's commands.
pkg/chainregistry
package chainregistry is a package that contains the chain.json and assetlist.json structs from the chain registry.
package chainregistry is a package that contains the chain.json and assetlist.json structs from the chain registry.
pkg/cliui/lineprefixer
Package lineprefixer is a helpers to add prefixes to new lines.
Package lineprefixer is a helpers to add prefixes to new lines.
pkg/cliui/prefixgen
Package prefixgen is a prefix generation helper for log messages and any other kind.
Package prefixgen is a prefix generation helper for log messages and any other kind.
pkg/cmdrunner/exec
Package exec provides easy access to command execution for basic uses.
Package exec provides easy access to command execution for basic uses.
pkg/confile
Package confile is helper to load and overwrite configuration files.
Package confile is helper to load and overwrite configuration files.
pkg/cosmosanalysis
Package cosmosanalysis provides a toolset for statically analysing Cosmos SDK's source code and blockchain source codes based on the Cosmos SDK
Package cosmosanalysis provides a toolset for statically analysing Cosmos SDK's source code and blockchain source codes based on the Cosmos SDK
pkg/cosmosclient
Package cosmosclient provides a standalone client to connect to Cosmos SDK chains.
Package cosmosclient provides a standalone client to connect to Cosmos SDK chains.
pkg/cosmosfaucet
Package cosmosfaucet is a faucet to request tokens for sdk accounts.
Package cosmosfaucet is a faucet to request tokens for sdk accounts.
pkg/errors
Package errors provides helpers for error creation, avoiding using different packages for errors.
Package errors provides helpers for error creation, avoiding using different packages for errors.
pkg/events
Package events provides functionalities for packages to log their states as events for others to consume and display to end users in meaningful ways.
Package events provides functionalities for packages to log their states as events for others to consume and display to end users in meaningful ways.
pkg/goanalysis
Package goanalysis provides a toolset for statically analysing Go applications
Package goanalysis provides a toolset for statically analysing Go applications
pkg/goenv
Package goenv defines env variables known by Go and some utilities around it.
Package goenv defines env variables known by Go and some utilities around it.
pkg/gomodulepath
Package gomodulepath implements functions for the manipulation of Go module paths.
Package gomodulepath implements functions for the manipulation of Go module paths.
pkg/httpstatuschecker
Package httpstatuschecker is a tool check health of http pages.
Package httpstatuschecker is a tool check health of http pages.
pkg/multiformatname
Package multiformatname provides names automatically converted into multiple naming convention
Package multiformatname provides names automatically converted into multiple naming convention
pkg/protoanalysis
Package protoanalysis provides a toolset for analyzing proto files and packages.
Package protoanalysis provides a toolset for analyzing proto files and packages.
pkg/protoanalysis/protoutil
Package protoutil wraps proto structs to allow easier creation, protobuf lang is small enough to easily allow this.
Package protoutil wraps proto structs to allow easier creation, protobuf lang is small enough to easily allow this.
pkg/xfilepath
Package xfilepath defines functions to define path retrievers that support error handling
Package xfilepath defines functions to define path retrievers that support error handling
services/gno
Package gno provides ignite's gno.land integration: dev chain serving, realm/package scaffolding, deployment and key management backed by the gno keybase.
Package gno provides ignite's gno.land integration: dev chain serving, realm/package scaffolding, deployment and key management backed by the gno keybase.
services/gno/_stdlibs/gnovm/stdlibs/chain/markdown
Package markdown is the Go-side implementation of the chain/markdown gno stdlib.
Package markdown is the Go-side implementation of the chain/markdown gno stdlib.
services/gno/_stdlibs/gnovm/stdlibs/chain/runtime/unsafe
Package unsafe quarantines the stack-walking and tx-origin primitives.
Package unsafe quarantines the stack-walking and tx-origin primitives.
services/gno/_stdlibs/gnovm/stdlibs/crypto/cometbls
Package cometbls provides native bindings for verifying CometBLS Groth16 proofs over BN254 from Gno contracts.
Package cometbls provides native bindings for verifying CometBLS Groth16 proofs over BN254 from Gno contracts.
DO NOT EDIT.
services/gno/_stdlibs/gnovm/tests/stdlibs
Package stdlibs provides supplemental stdlibs for the testing environment.
Package stdlibs provides supplemental stdlibs for the testing environment.
services/plugin
Package plugin implements ignite plugin management.
Package plugin implements ignite plugin management.
services/scaffolder
Package scaffolder initializes Ignite CLI apps and modifies existing ones to add more features in a later time.
Package scaffolder initializes Ignite CLI apps and modifies existing ones to add more features in a later time.
templates/field
Package field provides methods to parse a field provided in a command with the format name:type
Package field provides methods to parse a field provided in a command with the format name:type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL