github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/docs/concepts/gnovm.md (about) 1 --- 2 id: gnovm 3 --- 4 5 # GnoVM 6 7 GnoVM is a virtual machine that interprets Gno, a custom version of Go optimized for blockchains, featuring automatic state management, full determinism, and idiomatic Go. 8 It works with Tendermint2 and enables smarter, more modular, and transparent appchains with embedded smart-contracts. 9 It can be adapted for use in TendermintCore, forks, and non-Cosmos blockchains. 10 11 Read the ["Intro to Gnoland"](https://test3.gno.land/r/gnoland/blog:p/intro) blogpost. 12 13 This folder focuses on the VM, language, stdlibs, tests, and tools, independent of the blockchain. 14 This enables non-web3 developers to contribute without requiring an understanding of the broader context. 15 16 ## Language Features 17 18 * Like interpreted Go, but more ambitious. 19 * Completely deterministic, for complete accountability. 20 * Transactional persistence across data realms. 21 * Designed for concurrent blockchain smart contracts systems. 22 23 ## Getting started 24 25 Install [`gno`](../getting-started/local-setup/local-setup.md) and refer to the [`examples`](https://github.com/gnolang/gno/tree/master/examples) folder to start developing contracts. 26 27 Check the [Makefile](https://github.com/gnolang/gno/blob/master/gnovm/Makefile) to enhance GnoVM, Gno, and stdlibs.