https://github.com/gnolang/gno
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.
https://github.com/gnolang/gno
bft blockchain composability concurrency cosmos fairness gno gnoland gnolang gnovm golang hacktoberfest interpreter proof-of-contribution smart-contracts tendermint tendermint2 truth-discovery virtual-machine web3
Last synced: about 2 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/gnolang/gno
- Owner: gnolang
- License: other
- Created: 2021-01-29T17:28:08.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2026-01-12T03:01:23.000Z (2 months ago)
- Last Synced: 2026-01-12T03:04:30.847Z (2 months ago)
- Topics: bft, blockchain, composability, concurrency, cosmos, fairness, gno, gnoland, gnolang, gnovm, golang, hacktoberfest, interpreter, proof-of-contribution, smart-contracts, tendermint, tendermint2, truth-discovery, virtual-machine, web3
- Language: Go
- Homepage: https://gno.land/
- Size: 125 MB
- Stars: 1,043
- Watchers: 66
- Forks: 446
- Open Issues: 602
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-go - gno - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains. (Blockchain)
- awesome-compilers - Gno - A smart contract language developed in the Cosmos ecosystem, based on Go syntax, supporting persistent computation. (Golang)
- trackawesomelist - gno (⭐877) - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains. (Recently Updated / [Sep 15, 2024](/content/2024/09/15/README.md))
- awesome-gno - gno monorepo - The official core repo of the project, containing the core libraries, tools, and example Gno code. (Official Links)
- awesome-go - gno - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains. (Blockchain)
- stars - gnolang/gno - Gno language & gno.land chain (Go)
- awesome-go - gnolang/gno - based Go virtual machine to build succinct and composable apps + gno.land: a blockchain for timeless code and fair open-source. ☆`1,032` (Blockchain)
- awesome-go-with-stars - gno - built Go variant for blockchains. | 2026-03-03 | (Blockchain)
- fucking-awesome-go - gno - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains. (Blockchain)
- awesome-ccamel - gnolang/gno - 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. (Go)
- awesome-go-cn - gno - built Go variant for blockchains. [![近一周有更新][G]](https://github.com/gnolang/gno) [![godoc][D]](https://godoc.org/github.com/gnolang/gno) (区块链)
- awesome-go-plus - gno - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains.  (Blockchain)
README
# Gno
[](LICENSE.md)
[](https://gnolang.github.io/gno/github.com/gnolang/gno.html)
> 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](./tm2) consensus engine.
PLEASE NOTE: This is NOT the same project or token as the excellent Gnosis.io project.
## Getting Started
Explore Gno through our comprehensive documentation:
- **[For Users](./docs#use-gnoland)** - Learn how to use Gno applications,
manage accounts, and interact with the blockchain
- **[For Builders](./docs#build-on-gnoland)** - Start writing smart contracts,
understand the Gno language, and deploy your applications
- **[Resources](./docs#resources)** - Technical specifications, best
practices, and advanced topics
Visit [gno.land](https://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
- [Documentation](./docs/) - Complete documentation portal
- [Examples](./examples) - Sample contracts and patterns
- [Go API Reference](https://gnolang.github.io/gno/github.com/gnolang/gno.html) -
Go package documentation
[Gno Playground](https://play.gno.land), available at
[play.gno.land](https://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](./docs) - Official documentation
* [examples](./examples) - Smart contract examples and guides
* [gnovm](./gnovm) - GnoVM and the Gno language
* [gno.land](./gno.land) - Blockchain node and tools
* [tm2](./tm2) - Tendermint2 consensus engine
* [contribs](./contribs) - Additional tools and utilities
* [misc](./misc) - Various utilities and scripts
## Community
**Explore the Ecosystem:**
- [Gnoverse](https://github.com/gnoverse) - Community projects and initiatives
- [Awesome Gno](https://github.com/gnoverse/awesome-gno) - Curated list of
resources
- [Gnoscan](https://gnoscan.io) - Blockchain explorer
- [Gno Studio](https://gno.studio) - Web IDE for Gno development
- [Become a Gnome](./docs/builders/become-a-gnome.md) - Join the contributor
community
**Connect & Get Help:**
- [Discord](https://discord.gg/YFtMjWwUN7) - Real-time support and development
discussions
- [Twitter](https://twitter.com/_gnoland) - Official announcements and updates
- [YouTube](https://www.youtube.com/@_gnoland) - Tutorials, workshops, and
development calls
- [Workshops](https://github.com/gnolang/workshops) - Educational materials
- [Reddit](https://www.reddit.com/r/gnoland) - Forum-style discussions
- [Telegram](https://t.me/gnoland) - Community-run group
**Contribute:**
- [GitHub Issues](https://github.com/gnolang/gno/issues) - Report bugs and
request features
- [Contributing Guide](./CONTRIBUTING.md) - Guidelines for contributors
CI/CD/Tools badges and links
GitHub Actions:
* [](https://github.com/gnolang/gno/actions/workflows/gnoland.yml)
* [](https://github.com/gnolang/gno/actions/workflows/gnovm.yml)
* [](https://github.com/gnolang/gno/actions/workflows/tm2.yml)
* [](https://github.com/gnolang/gno/actions/workflows/examples.yml)
* [](https://github.com/gnolang/gno/actions/workflows/docker.yml)
Codecov:
* General: [](https://codecov.io/gh/gnolang/gno)
* tm2: [](https://codecov.io/gh/gnolang/gno/tree/master/tm2)
* gnovm: [](https://codecov.io/gh/gnolang/gno/tree/master/gnovm)
* gno.land: [](https://codecov.io/gh/gnolang/gno/tree/master/gno.land)
* examples: TODO
Go Report Card:
* [](https://goreportcard.com/report/github.com/gnolang/gno)
* tm2, gnovm, gno.land: TODO (blocked by tm2 split, because we need go mod workspaces)
Pkg.go.dev
* [](https://gnolang.github.io/gno/github.com/gnolang/gno.html) \
(pkg.go.dev will not show our repository as it has a license it doesn't recognise)