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.