Write Go smart contracts in your Cosmos SDK chain with Ignite

Write Go smart contracts in your Cosmos SDK chain with Ignite

In this tutorial, you will learn how to add GnoVM (Gno Virtual Machine) support to your Cosmos SDK blockchain using Ignite CLI.

Ignite has developed a Cosmos SDK module that integrates with the GnoVM and created an Ignite App to simplify its usage. Today, as of October 2025, this Cosmos SDK module is still heavily in development and still its alpha phase.


Quick Summary about Gno


In short, Gno is an open source smart contract language based on the Go syntax. It is easy to learn compared to other smart contract languages and has little gotchas as it is 99% like Go. It was originally was created for its blockchain gno.land.
Learn more about the Gno language on its documentation and repository.


Step 1: Install Ignite Version 29.6.0

Begin by installing the required version of Ignite CLI:

👉 https://docs.ignite.com/welcome/install

Once installed, create your Cosmos SDK blockchain with the following command:

ignite scaffold chain gm --address-prefix gm

install command

Navigate into your new blockchain directory:

cd gm

Step 2: Install the Ignite GnoVM App

Open a new terminal window and install the Ignite GnoVM App using the following command:

ignite app install github.com/ignite/apps/gnovm@gnovm/v0.1.0

ignite gnovm app install

This will add the GnoVM module and related configurations to your project.


Step 3: Add GnoVM Capabilities

Integrate and configure the GnoVM module by running:

ignite gnovm add

gnovm module scaffolding

This commands wires the GnoVM module, its keepers and ante handlers.
By default the chain domain used for the packages in the module is gno.land.

These settings can be adjusted at genesis if needed. For more advanced configuration modify module configuration in the Ignite config.yml as usual.


Step 4: Start Your Blockchain

Start your blockchain using the standard command:

ignite chain serve

start blockchain (via ignite)

Your Cosmos SDK blockchain now supports running Gno smart contracts!

Step 5: Interact with the VM

You can interact with the VM as any other Cosmos SDK module.
Use the gnovm tx command to add packages or call functions on the smart contract. Or the gnovm q command to make some queries about a smart contract state.

Read more on the module documentation.

The Ignite GnoVM App significantly simplifies the process of configuring the GnoVM template manually. However, we recommend gaining a deeper understanding of Gno and the GnoVM and their concepts on the gno.land documentation:
👉 https://docs.gno.land

Questions or support needed? Join our discord.