Gno - An Interpreted Go for Blockchain
Gno is a blockchain platform that uses an interpreted version of Go for writing smart contracts and dapps. It aims to make blockchain development accessible to Go developers.
Overview
- Website: gno.land
- GitHub: github.com/gnolang/gno
- Language: Gno (interpreted Go variant)
- Core Vision: “Beautiful is better than fast”
Philosophy
Design Principles
- Simplicity First: “There should be one obvious way to do it”
- Beauty over Speed: Prioritize code readability over raw performance
- Minimal Dependencies: Keep code and dependencies minimal
- Modular Software: Create maintainable, composable components
Core Values
- Transparency: “Truth is revealed in the open light”
- Collaborative Potential: “Everybody has the potential to see the light”
- Software Completeness: Finish projects to reduce long-term vulnerabilities
- Clarity: Make the obvious path the correct path
Technical Vision
- Self-Interpreting Language: The interpreter serves as the spec
- Immutable AST: Abstract Syntax Tree defines language interpretation
- Language Independence: Aim to make interpreter independent of Go
- Future Bytecode: Eventually implement bytecode compilation
Key Features
- Interpreted Go: Write smart contracts in a familiar Go-like syntax
- Proof of Contribution: Novel consensus mechanism
- Realms: Smart contracts with state persistence
- Packages: Reusable code libraries on-chain
- GnoVM: Custom virtual machine for executing Gno code
Technical Architecture
- Tendermint Core: Byzantine fault-tolerant consensus
- IBC Compatible: Inter-blockchain communication protocol
- Deterministic: All operations are deterministic for consensus
- Gas System: Resource metering for computation
- Commodity Hardware: Designed to run nodes on standard hardware
- Sharding: Use sharding and IBC for scaling
- Single Token Model: Deflationary base token model
Development
- Gno Playground: Online IDE for testing contracts
- gnokey: CLI wallet and transaction tool
- gnoland: Local blockchain node for development
- gnoweb: Web interface for browsing the chain
Performance Approach
- Correctness First: Prioritize debuggability over extreme performance
- Feature Completeness: Focus on finishing features properly
- Multicore Concurrency: Leverage concurrency for scalability
- Readable Code: Beautiful code leads to maintainable systems
Detailed Documentation
- p/nt/gno-govdao|🏛️ GovDAO System - Complex governance structure
- p/nt/gno-tokenomics|💰 Tokenomics - Economic model and distribution
- p/nt/gno-logoverse|🌍 The Logoverse - Philosophical vision
Questions
- How does Gno’s interpreted approach compare to compiled smart contracts?
- What are the trade-offs of using Go syntax for blockchain?
- How does Proof of Contribution incentivize development?
- Can existing Go packages be ported to Gno easily?
- How does the self-interpreting language spec work in practice?
- What does “language independence” mean for GnoVM’s future?
TODOs
- [ ] Set up local gnoland development environment
- [ ] Port a simple Go application to Gno
- [ ] Explore realm vs package distinctions
- [ ] Test IBC integration capabilities
Pitch Deck Content
Positioning
“Next generation of smart contract systems”
Key Messages
- Open-source smart contract system using Gnolang (interpreted Go)
- Intuitive and easy to use - lowering the barrier to web3
- No new language - developers can port existing Go apps
- Transparent simple code - living resource of libraries
- Censorship-resistant truth discovery platform
Technical Highlights
- Comprehensive smart contract suite based on Go/Gno
- Auto-merkleization and auto-persistence in unique GnoVM
- Transparent and verifiable state and contract code
- Usage-based rewards for library developers
- Multi-user code interaction outside blockchain context
Economics & Governance
- Proof of Contribution (PoC) - not Proof of Stake
- Membership-owned network - tiered contributors
- Non-transferable membership - aligned experts only
- Developers get paid by usage of their libraries
- $GNOT as gas token, Tendermint2 consensus
Products
- GnoStudio IDE: Web-based development environment
- Gno Playground: Share code, test, deploy (like Go Playground)
- Gnoweb: Browse contracts on-chain
Ecosystem (2024)
- Wallets: Adena
- Explorer: Gnoscan
- DeFi: Gnoswap
- Gaming: Flippando, GnoChess, Memeland, GnoTower
- Social: dSocial, Teritori
- Dev Tools: Multiple SDKs and clients
Comparison vs CosmWasm
Shows intuitive Go code vs complex Rust:
// Gno - Simple Go
func (t *AdminToken) TotalSupply() uint64 {
return t.totalSupply
}
vs complex Rust Storage patterns in CosmWasm
Timeline
- 2021: Project unveiled
- 2024: Testnet4 (July), Mainnet Q4
- 2025: Q1 mainnet if delayed
Funding
- $150M pre-valuation (up from $86.6M)
- Raising ~$10M from strategic partners only
- Previous: $3M from 1Confirmation, $16M from AIB
Sources
- Official Website: https://gno.land - Main project website
- GitHub: https://github.com/gnolang/gno - Source code repository
- Documentation: https://docs.gno.land - Technical documentation
- Philosophy Document: https://github.com/gnolang/gno/blob/master/PHILOSOPHY.md - Core design philosophy
- Gno Pitch Deck: https://gist.githubusercontent.com/jaekwon/55a3e8e6d2f178107631f19b341f5d83/raw/f40e7b6fff3317e9b1ad03242a60e066a89d484b/test.md - Investment deck with team and economics
- The First Logoverse: https://gno.land/r/gnoland/blog:p/gnoland-the-first-logoverse - Vision of multi-user programming paradigm