Skip to content

neo-project/neo-vm

Repository files navigation

neo-logo

NeoVM — The NEO Virtual Machine

NuGet Coverage Status License: MIT

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)


Features

  • 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).

Packages

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).


Contributing

Contributions are welcome! Typical flow:

  1. Fork the repo and create a feature branch.
  2. Make changes with tests (tests/Neo.VM.Tests).
  3. Ensure dotnet test passes and follow standard C# conventions.
  4. Open a pull request with a clear description and rationale.

See also

  • neo (core library) — base classes, ledger, P2P, IO. (Github)
  • neo-devpack-dotnet — C# → NeoVM compiler and developer toolkit. (Github)

About

NEO Virtual Machine

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 18

Languages