Skip to content
/ gno Public

Gno: An interpreted, stack-based Go virtual machine to build succinct and composable apps + gno.land: a blockchain for timeless code and fair open-source.

License

Notifications You must be signed in to change notification settings

gnolang/gno

Repository files navigation

Gno

License Go Reference

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 a blockchain platform that interprets a deterministic variant of Go for writing smart contracts, built on Tendermint consensus.

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 gno.land, a contribution-based chain, backed by a variation of the Tendermint consensus engine.

Getting Started

Explore Gno through our comprehensive documentation:

  • For Users - Learn how to use Gno applications, manage accounts, and interact with the blockchain
  • For Builders - Start writing smart contracts, understand the Gno language, and deploy your applications
  • Resources - Technical specifications, best practices, and advanced topics

Visit gno.land to see live smart contracts in action.

Key Features

  • Go Syntax: If you know Go, you know Gno
  • Deterministic Execution: Fully predictable contract behavior
  • Composable Packages: Import and reuse code like regular Go
  • Auto-Persisted State: Global variables automatically saved between calls
  • Contribution System: Rewarding open source contributors
  • Developer Experience: Comprehensive tooling including testing, debugging, and hot-reload development

Documentation

Gno Playground

play.gno.land

Gno Playground, available at play.gno.land, is a web app that allows users to write, share, and deploy Gno code. Developers can seamlessly test, debug, and deploy realms and packages on gno.land, while being able to collaborate with peers to work on projects together and seek assistance. A key feature of Gno Playground is the ability to get started without the need to install any tools or manage any services, offering immediate access and convenience for users.

Note: The playground may not always reflect the latest changes in this repository.

Repository Structure

  • docs - Official documentation
  • examples - Smart contract examples and guides
  • gnovm - GnoVM and the Gno language
  • gno.land - Blockchain node and tools
  • tm2 - Tendermint2 consensus engine
  • contribs - Additional tools and utilities
  • misc - Various utilities and scripts

Community

Explore the Ecosystem:

Connect & Get Help:

  • Discord - Real-time support and development discussions
  • Twitter - Official announcements and updates
  • YouTube - Tutorials, workshops, and development calls
  • Workshops - Educational materials
  • Reddit - Forum-style discussions
  • Telegram - Community-run group

Contribute:

CI/CD/Tools badges and links

GitHub Actions:

  • gno.land
  • gnovm
  • tm2
  • examples
  • docker

Codecov:

  • General: codecov
  • tm2: codecov
  • gnovm: codecov
  • gno.land: codecov
  • examples: TODO

Go Report Card:

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

Pkg.go.dev

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