The Neo Core development team has published Neo Express v3.9.1, the first official update to the local blockchain tool since May 2025. Released on Feb. 4, the new version introduces support for .NET 10.0, updates compatibility with Neo-CLI v3.9.1, and incorporates extensive refinements aimed at improving developer workflows.
Key upgrades in Neo Express v3.9.1
Neo Express v3.9.1 consolidates 39 merged pull requests across multiple focus areas, including bug fixes, security upgrades, platform support, and infrastructure maintenance. It removes legacy framework targets, improves cross-platform usability, and resolves long-standing issues affecting smart contract testing, localization, and debugging.
Platform & framework updates
.NET 10 compatibility: Neo Express now targets .NET 10.0, the latest version of Microsoft’s development platform (#515), ensuring developers can leverage the most recent framework features and performance improvements. This update also removes legacy .NET Standard and .NET Framework targets (#496), streamlining the codebase and reducing maintenance overhead.
Neo v3.9.1 integration: The release upgrades Neo Express to align with Neo-CLI v3.9.1 (#516), ensuring compatibility with the latest protocol features including the contract fee whitelist, Treasury native contract, and enhanced execution fee factor precision.
Multi-platform binaries: Pre-built binaries are now available for multiple platforms including Linux (x64, ARM64, musl), macOS (x64, ARM64), and Windows (x64, ARM64), providing native support across development environments.
Development workflow improvements
Enhanced command execution: The RunDotNetCommand method now uses argument lists instead of string concatenation (#478), improving reliability and reducing potential errors when executing .NET CLI commands during smart contract development and testing.
Improved test infrastructure: Test command execution has been refactored to eliminate code duplication across test classes (#480), making the test suite more maintainable and reducing the risk of inconsistent behavior across different testing scenarios.
Localization fixes: Resolved an issue where the Test02_BuildValidation test would fail when run in non-English language environments (#483), improving the international developer experience.
Bug fixes & stability
Several critical bug fixes improve Neo Express reliability:
State service enhancements: Fixed issues in StateServiceStore (#493) and MemoryTrackingStore classes (#492), improving blockchain state management and memory tracking during development and testing workflows.
Storage item handling: Resolved an issue where unknown storage items would cause errors instead of returning null in GetProvenState (#491), preventing crashes when querying non-existent blockchain state.
Transfer state accuracy: Fixed incorrect state reporting in GetTransfers method (#494), ensuring accurate tracking of token transfers during development and testing.
$NFT support improvements: Corrected $NFT transfer token parsing and balance stack order (#507), resolving issues developers encountered when testing $NFT contracts.
Neo-trace protocol settings: Fixed protocol settings in neo-trace and improved error messaging when trace operations fail (#488), enhancing debugging capabilities.
Current directory handling: Resolved path resolution issues that could cause commands to fail when executed from certain working directories (#495).
Neo3-visual-tracker release download: Fixed download issues affecting the Neo3 Visual Tracker extension (#499), ensuring developers can properly install and use the Visual Studio Code extension.
Snapshot data handling: Modified snapshot functionality to add a copy of entries instead of the list itself (#490), preventing unintended side effects and data corruption during state snapshots.
Security updates
The release addresses numerous security vulnerabilities through dependency updates in the neo3-visual-tracker extension:
- Updated tar-fs (2.1.1 → 2.1.4) (#476, #500) to address archive extraction vulnerabilities
- Updated base-x (5.0.0 → 5.0.1) (#473) for improved base encoding security
- Updated pbkdf2 (3.1.2 → 3.1.3) (#477) for password-based key derivation
- Updated cipher-base (1.0.4 → 1.0.6) (#497) for cryptographic operations
- Updated sha.js (2.4.11 → 2.4.12) (#498) for SHA hashing functions
- Updated tmp (0.2.1 → 0.2.4) (#489) for temporary file handling
- Updated js-yaml (#509) for YAML parsing security
- Updated jws (3.2.2 → 3.2.3) (#511) for JSON Web Signature handling
- Updated qs (6.14.0 → 6.14.1) (#512) for query string parsing
- Updated undici (7.16.0 → 7.18.2) (#513) for HTTP client operations
- Updated @isaacs/brace-expansion (5.0.0 → 5.0.1) (#518) for glob pattern matching
- Updated Microsoft.Build.Utilities.Core (17.14.8 → 17.14.28) (#505, #506) for build tooling
- General security package updates (#502, #510)
These updates collectively address critical and high-severity security vulnerabilities, ensuring Neo Express remains secure for development workflows.
Code quality improvements
Deprecated method updates: Replaced deprecated method calls throughout the codebase (#482), ensuring compatibility with current and future .NET releases and reducing compiler warnings.
Warning reduction: Cleaned up various compiler warnings (#501), improving code quality and making it easier for developers to identify genuine issues in their own code.
Package version updates: Regular dependency maintenance (#479, #503) to keep the project current with upstream changes.
Compatibility
Neo Express v3.9.1 is compatible with Neo-CLI v3.9.1 and later. Developers using Neo Express for local blockchain testing should update to this version to ensure compatibility with the latest protocol features and MainNet/TestNet behavior.
The update requires .NET 10.0 SDK for developers building from source. Pre-built binaries are available for developers who prefer not to compile the tooling themselves.
Neo Express v3.9.1 can can be downloaded from the link below:
https://github.com/neo-project/neo-express/releases/tag/3.9.1
