Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

* optimize vote reward

* rm end when calculate bonus

* fix ut

* revert UnclaimGas interface, check end instead, fix ut

Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Neo Blockchain

A modern distributed network for the Smart Economy.
Documentation »

Neo · Neo VM · Neo Modules · Neo DevPack · Neo Node


Current TravisCI build status. Current neo version. Coverage Status License.

Table of Contents

  1. Overview
  2. Project structure
  3. Related projects
  4. Opening a new issue
  5. Bounty program
  6. License


This repository contain main classes of the Neo blockchain.
Visit the documentation to get started.

Project structure

An overview of the project folders can be seen below.

Folder Content
Consensus Classes used in the dBFT consensus algorithm, including the ConsensusService actor.
Cryptography General cryptography classes including ECC implementation.
IO Data structures used for caching and collection interaction.
Ledger Classes responsible for the state control, including the MemoryPool and Blockchain classes.
Network Peer-to-peer protocol implementation classes.
Persistence Classes used to allow other classes to access application state.
Plugins Interfaces used to extend Neo, including the storage interface.
SmartContract Native contracts, ApplicationEngine, InteropService and other smart-contract related classes.
VM Helper methods used to interact with the VM.
Wallet Wallet and account implementation.

Related projects

Code references are provided for all platform building blocks. That includes the base library, the VM, a command line application and the compiler.

  • neo: Neo core library, contains base classes, including ledger, p2p and IO modules.
  • neo-vm: Neo Virtual Machine is a decoupled VM that Neo uses to execute its scripts. It also uses the InteropService layer to extend its functionalities.
  • neo-node: Executable version of the Neo library, exposing features using a command line application or GUI.
  • neo-modules: Neo modules include additional tools and plugins to be used with Neo.
  • neo-devpack-dotnet: These are the official tools used to convert a C# smart-contract into a neo executable file.

Opening a new issue

Please feel free to create new issues to suggest features or ask questions.

If you found a security issue, please refer to our security policy.

Bounty program

You can be rewarded by finding security issues. Please refer to our bounty program page for more information.


The NEO project is licensed under the MIT license.