NEO is an advanced smart contract platform.

There are two tokens in use: NEO and GAS. NEO was made for voting on network changes. GAS was made for paying for network operations. GAS is rewarded to NEO token holders with each block.

NEO uses Delegated Byzantine Fault Tolerant (dBFT) consensus mechanism. NEO holders vote for bookkeepers (block producers). Selected bookkeepers will produce blocks every 15 seconds. If most of the bookkeepers agree on what block should contain, this block will be considered valid.

NEO introduces the notion of Digital Identity. Any user of NEO can request a certificate, which will prove that the NEO address is tied to a specific person.

NeoContract is a modernized implementation of smart contracts on NEO. It solves multiple problems that are usual for distributed systems, such as inconsistencies of time, random number generation and external data on different computers.

NEO allows contracts to call each other, but the calls should be statically defined, i.e. defined before running a contract. This allows NEO to build a tree of calls for each contract. Thanks to this, NEO can define whether two contracts connected to each other, thus creating sets of connected contracts. Different sets can be executed in parallel, allowing potentially endless scalability.

Smart contracts run on the lightweight NeoVM (NEO Virtual Machine). NeoVM has a fast startup and takes up little resources, which makes it perfect for short programs like smart contracts. The architecture of NeoVM is similar to popular programming languages, so smart contracts can be written in Java, C#, and other modern languages.

NeoX is a protocol for cross-chain interaction. It allows atomic transactions on multiple chains. All connected transactions either fail or success simultaneously. The simple example of cross-chain interaction is the atomic exchange of coins, e.g. Ethereum and NEO, written in both blockchains. Other blockchains should support NeoX.

NEO introduces a distributed file system, NeoFS. Uploaded files can be accessed by their hash value. As each file is stored only on the small subset of nodes, there is a possibility that a file will be corrupted or even removed from all nodes that keep it. NEO solves it by allowing the user (or developer) to set the reliability of each file. Files with a small reliability will be cheap or even free to store and access. Files with a high reliability will be stored on backbone nodes, providing very low chance of failing, but also requiring higher costs.

NEO tries to maintain the security with the rise of quantum computers by using NeoQS. Quantum computers are different from traditional computers. They can easily solve algorithms like RSA and EEC, but for now, they lack performance to do so. In future, these computers will be in power to break all traditional cryptographic algorithms. The lattice-based algorithm is believed to be able to resist from quantum computing, and NeoQS is a lattice-based cryptographic mechanism.


  • May 31, 2015: First commit on Github github.com
  • August 1, 2016: Launched as AntShares on Bitcointalk bitcointalk.org
  • August 8, 2016—September 7, 2016: Antshares ICO twitter.com
  • October 16, 2016: Launch of Antshares mainnet twitter.com
  • June 22, 2017: Antshares rebranded as NEO bitcoinmagazine.com
  • September 15, 2017—November 16, 2017: start of the NEO dApps competition, held by City of Zion neo.org
  • October 8, 2017: Red Pulse, the first crowdsale on NEO reddit.com
  • November 20, 2017—January: start of the 1st NEO Dev Competition, co-organized by Microsoft neo.org
  • January 30, 2018—January 31, 2018: NEO DevCon in San Francisco neo.org
Hi. I write articles like this each week. You can subscribe and get them delivered to your email address.