Gno
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 gno.land, 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 discover additional details about current tools and Gno documentation on
our official documentation. Additionally, the awesome-gno
repository offers more resources to dig into. We are eager to see your first PR!
Gno Playground
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.
Repository structure
- examples - Smart-contract examples and guides for new Gno developers.
- gnovm - GnoVM and Gnolang.
- gno.land - Gno.land blockchain and tools.
- tm2 - Tendermint2.
- docs - Official documentation, deployed under docs.gno.land.
- contribs - Collection of enhanced tools for Gno.
- 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
Developer commands:
- gno - handy tool for developing gno packages & realms
- 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:
Codecov:
- General:
- tm2:
- gnovm:
- gno.land:
- examples: TODO
Go Report Card:
- tm2, gnovm, gno.land: TODO (blocked by tm2 split, because we need go mod workspaces)
Pkg.go.dev
-
(pkg.go.dev will not show our repository as it has a license it doesn't recognise)