Jimmy Liao, core developer and founder of R3E Network, revealed that he is working on Neo Solidity Compiler, a tool that compiles Solidity 0.8.x smart contracts into Neo N3 bytecode. This project will enable developers to create contracts in Solidity and deploy them to the Neo N3 blockchain.
What is NeoSolidity?
Neo Solidity Compiler converts Solidity smart contracts into Neo N3-compatible bytecode and manifest files. The compiler is primarily written in Rust and includes testing infrastructure for both basic and advanced features of Solidity. The project documentation states that its goal is to allow Ethereum developers to build on Neo N3 using their existing Solidity knowledge, rather than learning Neo's native smart contract language.
The compiler accepts Solidity 0.8.x source code and outputs Neo N3. .nef bytecode file and .manifest.json file. Discover ERC token standard patterns (ERC-20, ERC-721) in Solidity contracts and map them to their Neo equivalent standards (NEP-17, NEP-11).
Developers can choose from four optimization levels (0-3) when compiling a contract. The tool works through a command-line interface and includes scaffolding for integration with Hardhat and Foundry, two development frameworks commonly used in Ethereum development.
Neo Solidity differs from the Neo X project in that it is an EVM sidechain where developers deploy Solidity contracts directly onto that network without making any changes. In contrast, Neo Solidity compiles Solidity source code into Neo N3-compatible bytecode, allowing contracts to be deployed natively to the Neo N3 main network rather than a separate EVM-compatible chain.
technical architecture
The compilation process transforms Solidity source code into a Yul intermediate representation and performs semantic analysis for type checking and validation. A multilevel optimizer applies Neo-specific transformations before the code generator generates NeoVM bytecode and manifest files.
The compiler includes runtime libraries that provide memory management, storage operations, ABI encoding, and cryptographic functions designed to match EVM behavior within Neo's execution environment.
For developers interested in determining the internal architecture and implementation of the compiler, detailed technical design specifications are available in the project repository.
Contract example
The repository contains several sample contracts that demonstrate the capabilities of the compiler. WGAS is a wrapped GAS token implementation that follows the WETH9 pattern and is NEP-17 compliant. FlashLoan implements Aave V2 style flash loan pools with 0.09% fees. SimpleAMM is an automated market maker for constant products based on the Uniswap V2 design.
Additional examples include TokenVesting, which offers a linear vesting schedule similar to OpenZeppelin's VestingWallet. SimpleLending adapts Compound's single-asset lending pool structure. SimpleDAO implements MolochDAO style governance with staking and suggestions.
According to the project documentation, all sample contracts were deployed on Neo Express, Neo's local development environment, and tested with state change operations.
Development status
Project documentation indicates that the core compiler is approximately 85% complete and described as production-ready. Runtime libraries are listed at 75% complete, developer tools at 70% and fully functional CLI, and documentation at 80% complete.
The project documentation lists some current limitations. Function overloading is partially supported. Functions can be overloaded with different argument counts using mangled names in the signature, but overloading with the same argument count is rejected. EVM invocation options are: {gas: ...} and {value: 0} Accepted but ignored. NEP-17 native calls must be used to transfer non-zero values. Gas accounting is estimated through gas hints per system call, and opcode-level charges are approximately 80% accurate.
The documentation recommends validating TestNet before deploying MainNet.
Technical design specifications can be found here and pull project repositories can be found below.
https://github.com/r3e-network/neo-solidity/tree/main

