Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

When the flag `--skip-failing-genesis-txs=true` was set, we still have a
panic because the flag wasn't send for the config

<details><summary>Contributors' checklist...</summary>

- [ ] Added new tests, or not needed, or not feasible
- [ ] Provided an example (e.g. screenshot) to aid review or the PR is
- [ ] Updated the official documentation or not needed
- [ ] No breaking changes were made, or a `BREAKING CHANGE: xxx` message
was included in the description
- [ ] Added references to related issues and PRs
- [ ] Provided any useful hints for running manual tests
- [ ] Added new benchmarks to [generated
graphs](, if any. More info

Git stats


Failed to load latest commit information.
Latest commit message
Commit time


At first, there was Bitcoin, out of entropy soup of the greater All. Then, there was Ethereum, which was created in the likeness of Bitcoin, but made Turing complete.

Among these were Tendermint and Cosmos to engineer robust PoS and IBC. Then came Gno upon Cosmos and there spring forth Gnoland, simulated by the Gnomes of the Greater Resistance.

Gno is an interpreted and fully-deterministic implementation of the Go programming language, designed to build succinct and composable smart contracts. The first blockchain to use it is, a Proof of Contribution-based chain, backed by a variation of the Tendermint consensus engine.

Getting started

If you haven't already, take a moment to check out our website.

The website is a deployment of our gnoweb frontend; you can use it to check out some example contracts.

Use the [source] button in the header to inspect the program's source; use the [help] button to view how you can use gnokey to interact with the chain from your command line.

If you have already played around with the website, use our Getting Started guide to learn how to write and deploy your first smart contract. No local set-up required!

Once you're done, learn how to set up your local environment with the quickstart guide and the contributing guide.

You can find out more existing tools & documentation for Gno on our awesome-gno repository. We look forward to seeing your first PR!

Repository structure

  • examples - smart-contract examples and guides for new Gno developers.
  • gnovm - GnoVM and Gnolang.
  • - blockchain and tools.
  • tm2 - Tendermint2.

Socials & Contact

  • Discord: good for general chat-based conversations, as well as for asking support on developing with Gno.
  • Reddit: more "permanent" and forum-style discussions. Feel free to post anything Gno-related, as well as any question related to Gno programming!
  • Telegram: unofficial Telegram group.
  • Twitter: official Twitter account. Follow us to know about new developments, events & official announcements about Gno!
  • YouTube: here we post all of our video content, like workshops, talks and public development calls. Follow along on our development journey!
Short doc about all the commands

User commands:

  • gnokey - key manipulation, also general interaction with gnoland
  • gnoland - runs the blockchain node
  • gnoweb - serves gno website, along with user-defined content
  • logos - intended to be used as a browser

Developer commands:

  • gno - handy tool for developing gno packages & realms
  • gnotxsync - importing/exporting transactions from local blockchain node storage
  • goscan - dumps imports from specified file’s AST
  • genproto - helper for generating .proto implementations
  • gnofaucet - serves GNOT faucet
CI/CD/Tools badges and links

GitHub Actions:

  • gnovm
  • tm2
  • examples
  • docker


  • General: codecov
  • tm2: codecov
  • gnovm: codecov
  • codecov
  • examples: TODO

Go Report Card:

  • Go Report Card
  • tm2, gnovm, TODO (blocked by tm2 split, because we need go mod workspaces)

  • Go Reference
    ( will not show our repository as it has a license it doesn't recognise)