Native Contracts in NEO 3.0

Today I bring you some of the latest news in NEO 3.0 development, the most important of which is a feature called “Native Contracts.” Native Contracts are part of the NeoContract component in NEO 3.0, and have now been developed and merged into the master branch. Other parts of NeoContract include: Manifest and Permission System, Internet Resource Access (Oracle), Voting System (Onchain Governance), and more. Each will be designed and developed over the coming months.

The Native Contracts that have been developed so far are two token contracts: NEO and GAS. Like their predecessors, UTXO NEO and GAS in NEO 2.x, they implement all the original features, such as: transfer, GAS distribution, consensus node elections, and voting. In addition, Native Contracts also offer other features.

Advantages of Native Contracts

In NEO 3.0, everything is a contract. This means system objects like NEO and GAS also run in smart contracts. While using a regular smart contract to build NEO and GAS was also a viable option, Native Contracts run faster than contracts executed in a virtual machine. Moreover, Native Contracts can be updated without altering the contract’s hash, such as in the event of a new feature being added.

When NEO and GAS become smart contracts, the system functions they provide will also become part of the contract. This opens up interfaces to users and other contracts, making it easy to integrate with any other contract. In addition, the new NEO and GAS contracts are compatible with the NEP-5 standard, allowing any wallet or client to directly manage native assets. Other contracts can also be integrated with NEO and GAS through the NEP-5 interfaces to allow the development of more advanced features.

In particular, we have a new feature for native GAS. In the past, three steps were required to claim generated GAS: transfer NEO, claim GAS, and receive GAS. With the power of Native Contracts, GAS is automatically claimed every time you send or receive a NEO transfer, without the need for manual operations.


Most of the Native Contracts features are compatible with NEO 2.x. Therefore, this feature will be ported to NEO 2.x at an appropriate time. Once this port is successfully deployed, it will bring huge benefits to users, developers, and exchanges.

First of all, DApp developers will be able to easily add economic models combined with NEO or GAS in their projects, which was very difficult in the past.

Secondly, many exchanges generate GAS through NEO deposited by users. The exchange should distribute this GAS to users, but it requires a lot of complicated steps. This update will make the process very easy.

Finally, due to the adoption of Native Contract technology in NEO 3.0, the migration from NEO 2.x to NEO 3.0 will be smooth.

For all the ecosystem projects, the new update will not affect previously deployed smart contracts and the new smart contract deployment and invocation process on MainNet. For all NEO/GAS owners, the functionality of NEO/GAS in exchanges and wallets will be unaffected.

Next Steps

The development of NEO 3.0 is still in full swing. Currently, the new pricing model is being determined. The new P2P protocol is also being designed, the LZ4 compression option has been added, and UDP protocol support is under development. If there is new progress, I will still share it with you through the technical blog. Thank you for your attention!