https://github.com/neo-project/neo-vm
NEO Virtual Machine
https://github.com/neo-project/neo-vm
neo virtual-machine
Last synced: 2 months ago
JSON representation
NEO Virtual Machine
- Host: GitHub
- URL: https://github.com/neo-project/neo-vm
- Owner: neo-project
- License: mit
- Created: 2016-09-22T06:17:18.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2026-01-01T17:48:32.000Z (3 months ago)
- Last Synced: 2026-01-01T20:54:07.931Z (3 months ago)
- Topics: neo, virtual-machine
- Language: C#
- Homepage:
- Size: 1.48 MB
- Stars: 198
- Watchers: 45
- Forks: 145
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NeoVM — The NEO Virtual Machine
[](https://www.nuget.org/packages/Neo.VM/)
[](https://coveralls.io/github/neo-project/neo-vm)
[](LICENSE)
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](https://developers.neo.org/docs/n3/foundation/neovm))
---
## 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 10.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](https://github.com/neo-project/neo))
* **neo-devpack-dotnet** — C# → NeoVM compiler and developer toolkit. ([Github](https://github.com/neo-project/neo-devpack-dotnet))