NeoVM is the lightweight, deterministic, stack-based virtual machine that executes Neo smart contracts. It’s designed to be embeddable, predictable, and portable across platforms. For an overview and deep dives (architecture, stacks, instruction set), see the official developer docs. (NEO Developer Resource)
- Deterministic & Turing-complete execution for smart contracts.
- Small, embeddable runtime suitable for host applications beyond the Neo blockchain.
- Clear isolation boundary: external effects are provided by the host via an interop/syscall layer (e.g., ApplicationEngine in Neo).
- Rich instruction set (control flow, stacks, arithmetic, crypto, data structures).
The VM is published as a NuGet package:
dotnet add package Neo.VM
This adds the VM to your project; you can then embed and drive it from your host application.
Targets .NET 9.0 and .NET Standard 2.1 (compatible with a wide range of runtimes).
Contributions are welcome! Typical flow:
- Fork the repo and create a feature branch.
- Make changes with tests (
tests/Neo.VM.Tests). - Ensure
dotnet testpasses and follow standard C# conventions. - Open a pull request with a clear description and rationale.