CSharp implementation of the neo blockchain protocol.
A modern distributed network for the Smart Economy.
Documentation ยป
Neo
ยท
Neo Modules
ยท
Neo DevPack
Table of Contents
Overview
This repository is a csharp implementation of the neo blockchain. It is jointly maintained by the neo core developers and neo global development community. Visit the tutorials to get started.
Project structure
An overview of the project folders can be seen below.
| Folder | Content |
|---|---|
| /src/neo/Cryptography/ | General cryptography implementation, including ECC. |
| /src/neo/IO/ | Data structures used for caching and collection interaction. |
| /src/neo/Ledger/ | Classes responsible for the state control, including the MemoryPool and Blockchain. |
| /src/neo/Network/ | Peer-to-peer protocol implementation. |
| /src/neo/Persistence/ | Classes used to allow other classes to access application state. |
| /src/neo/Plugins/ | Interfaces used to extend Neo, including the storage interface. |
| /src/neo/SmartContract/ | Native contracts, ApplicationEngine, InteropService and other smart-contract related classes. |
| /src/neo/Wallets/ | Wallet and account implementation. |
| /src/Neo.Extensions/ | Extensions to expand the existing functionality. |
| /src/Neo.Json/ | Neo's JSON specification. |
| /tests/ | All unit tests. |
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: Included libraries are Neo, Neo-CLI, Neo-GUI, Neo-VM, test and plugin modules.
- neo-express: A private net optimized for development scenarios.
- neo-devpack-dotnet: These are the official tools used to convert a C# smart-contract into a neo executable file.
- neo-proposals: NEO Enhancement Proposals (NEPs) describe standards for the NEO platform, including core protocol specifications, client APIs, and contract standards.
- neo-non-native-contracts: Includes non-native contracts that live on the blockchain, included but not limited to NeoNameService.
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.
Contributing
We welcome contributions to the Neo project! To ensure a smooth collaboration process, please follow these guidelines:
Branch Rules
master- Contains the latest stable release version. This branch reflects the current production state.dev- The main development branch where all new features and improvements are integrated.
Pull Request Guidelines
Important: All pull requests must be based on the dev branch, not master.
-
Fork the repository and create your feature branch from
dev:git checkout dev git pull origin dev git checkout -b feature/your-feature-name -
Make your changes following the project's coding standards and conventions.
-
Test your changes thoroughly to ensure they don't break existing functionality.
-
Commit your changes with clear, descriptive commit messages:
git commit -m "feat: add new feature description" -
Push to your fork and create a pull request against the
devbranch:git push origin feature/your-feature-name -
Create a Pull Request targeting the
devbranch with:- Clear title and description
- Reference to any related issues
- Summary of changes made
Development Workflow
feature/bug-fix โ dev โ master (via release)
- Feature branches are merged into
dev devis periodically merged intomasterfor releases- Never create PRs directly against
master
For more detailed contribution guidelines, please check our documentation or reach out to the maintainers.
Bounty program
You can be rewarded by finding security issues. Please refer to our bounty program page for more information.
License
The NEO project is licensed under the MIT license.