The Neo Core development team has published Neo Express v3.9.1, the first official update to the local blockchain tool since May 2025. The new version, released on February 4, introduces support for .NET 10.0, updates compatibility with Neo-CLI v3.9.1, and includes extensive refinements aimed at improving developer workflows.
Major 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 outdated framework targets, improves cross-platform usability, and resolves long-standing issues affecting the testing, localization, and debugging of smart contracts.
Platform and framework updates
.NET 10 Compatibility: Neo Express now targets .NET 10.0, the latest version of Microsoft’s development platform (#515), allowing developers to take advantage of the latest framework features and performance improvements. This update also removes outdated .NET Standard and .NET Framework targets (#496), streamlining the codebase and reducing maintenance overhead.
Integration of Neo v3.9.1: The release upgrades Neo Express to align with Neo-CLI v3.9.1 (#516), ensuring compatibility with the latest protocol features, including contract fee whitelisting, a native Treasury contract, and improved execution fee factor accuracy.
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 all development environments.
Development workflow improvements
Improved command execution: The RunDotNetCommand The 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 re-architected to eliminate code duplication between test classes (#480), making the test suite more maintainable and reducing the risk of inconsistent behavior across test scenarios.
Localization fixes: Fixed an issue where the Test02_BuildValidation the test would fail if run in non-English environments (#483), improving the international developer experience.
Bug fixes and stability
Several critical bug fixes improve Neo Express reliability:
State Service Improvements: Issues Resolved in StateServiceStore (#493) and MemoryTrackingStore classes (#492), improving blockchain state management and memory tracking during development and testing workflows.
Storage Item Handling: Fixed an issue where unknown storage items would cause errors instead of returning null GetProvenState (#491), prevents crashes when querying a non-existent blockchain state.
Transfer status accuracy: Fixed incorrect status reporting 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), which fixes issues developers encountered during testing $NFT contracts.
Neo-trace protocol settings: Fixed protocol settings in neo-trace and improved error messages when trace operations fail (#488), improving debugging capabilities.
Current Directory Handling: Fixed path resolution issues that could cause commands to fail when run from certain workbooks (#495).
Download Neo3-visual-tracker release: Resolved download issues related to the Neo3 Visual Tracker extension (#499), allowing developers to properly install and use the Visual Studio Code extension.
Snapshot data handling: Adjusted snapshot functionality to add a copy of the items instead of the list itself (#490), preventing unintended side effects and data corruption during state snapshots.
Security updates
The release addresses numerous security issues via 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 encryption security
- Updated pbkdf2 (3.1.2 → 3.1.3) (#477) for password-based key derivation
- Updated encryption 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 protection
- Updated jws (3.2.2 → 3.2.3) (#511) for JSON web signature processing
- Updated qs (6.14.0 → 6.14.1) (#512) for parsing query strings
- Updated undici (7.16.0 → 7.18.2) (#513) for HTTP client operations
- @isaacs/brace-expansion updated (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 tools
- General Security Rollup Updates (#502, #510)
These updates collectively address critical and high-severity security issues, keeping Neo Express safe for development workflows.
Code quality improvements
Deprecated method updates: Replaced deprecated method calls across the codebase (#482), ensuring compatibility with current and future .NET releases and reducing compiler warnings.
Warning Reduction: Several compiler warnings (#501) have been cleaned up, improving code quality and making it easier for developers to identify real problems 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 higher. 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 tool themselves.
Neo Express v3.9.1 can be downloaded from the link below:
https://github.com/neo-project/neo-express/releases/tag/3.9.1
