# NeoRust v0.4.0 - Production-Ready Neo N3 SDK
<div align="center">
<p>
<img src="assets/images/neo-logo.png" alt="Neo Logo" width="125" align="middle"/>
<img src="assets/images/neo-x-logo.png" alt="Neo X Logo" width="80" align="middle"/>
<img src="assets/images/r3e-logo.png" alt="R3E Logo" width="300" align="middle"/>
</p>
<h3>๐ Complete Neo N3 Development Suite</h3>
<p><strong>Rust SDK โข Beautiful GUI โข Powerful CLI โข Production Ready</strong></p>
</div>
[](https://github.com/R3E-Network/NeoRust/actions/workflows/rust.yml)
[](https://github.com/R3E-Network/NeoRust/actions/workflows/release.yml)
[](https://app.netlify.com/sites/neorust/deploys)
[](https://crates.io/crates/neo3)
[](https://docs.rs/neo3)
[](https://opensource.org/licenses/MIT)
[](https://opensource.org/licenses/Apache-2.0)
**NeoRust** is the most comprehensive Rust SDK for the Neo N3 blockchain ecosystem. It provides everything you need to build, deploy, and manage Neo applications - from a powerful Rust library to beautiful desktop applications.
## ๐ What's New in v0.3.0
### ๐ **Complete Project Transformation**
- **116 compilation errors eliminated** - Achieved 100% compilation success across all components
- **All security vulnerabilities resolved** - Updated all vulnerable dependencies to secure versions
- **Complete API modernization** - Fixed all deprecated and broken API calls
- **Production-ready implementations** - Replaced all placeholder code with fully functional implementations
### ๐ **Security Enhancements**
- **protobuf**: Updated from 3.2.0 to 3.7.2 (RUSTSEC-2024-0437)
- **rustc-serialize**: Removed vulnerable dependency (RUSTSEC-2022-0004)
- **rust-crypto**: Removed vulnerable dependency (RUSTSEC-2022-0011)
- **json**: Removed unmaintained dependency (RUSTSEC-2022-0081)
- **instant**: Replaced with web-time for better WASM support (RUSTSEC-2024-0384)
- Migrated to secure RustCrypto ecosystem with proper cryptographic key management
### ๐ **Production Features**
- **Complete CLI tool** with comprehensive Neo N3 operations
- **Real message signing and verification** with ECDSA cryptography
- **Transaction building and signing** with proper fee calculation
- **NeoFS file storage** with complete client implementation and multipart upload
- **DeFi protocol integration** (Flamingo, NeoBurger, NeoCompound, GrandShare)
- **NFT operations** (mint, transfer, list, metadata management)
- **Developer tools** (encoding, hashing, signature verification)
### ๐ **Achievement Metrics**
- **Compilation Errors**: 116 โ 0 โ
- **Security Vulnerabilities**: 5 โ 0 โ
- **Placeholder Implementations**: 9 โ All Production-Ready โ
- **Test Suite**: 278 tests passing โ
- **Examples**: All working correctly โ
## ๐ Quick Start
### ๐ฆ **Installation**
#### Download Pre-built Binaries
Visit our [Releases Page](https://github.com/R3E-Network/NeoRust/releases/latest) to download pre-built binaries for your platform:
- **Linux**: `neo-cli-linux-x86_64`, `neo-gui-linux-x86_64`
- **macOS**: `neo-cli-macos-x86_64`, `neo-gui-macos-x86_64` (Intel), `neo-cli-macos-aarch64`, `neo-gui-macos-aarch64` (Apple Silicon)
- **Windows**: `neo-cli-windows-x86_64.exe`, `neo-gui-windows-x86_64.exe`
#### Install from Crates.io
```bash
# Install the CLI globally
cargo install neo-cli
# Add the SDK to your project
cargo add neo3
```
### ๐ฑ Desktop GUI Application
**Download and run the beautiful Neo N3 Wallet:**
```bash
# Clone the repository
git clone https://github.com/R3E-Network/NeoRust.git
cd NeoRust/neo-gui
# Install dependencies and start
npm install
npm run dev
```
**Access at**: http://localhost:1420
**Features:**
- ๐ผ Multi-wallet management with secure storage
- ๐ Real-time portfolio dashboard with interactive charts
- ๐จ NFT collection browser and minting interface
- ๐ง Developer tools for encoding, hashing, and debugging
- ๐ Network management and blockchain monitoring
- โก Lightning-fast performance with hot reload
### ๐ป Command Line Interface
**Install and use the powerful Neo CLI:**
```bash
# Build the CLI application
cd neo-cli
cargo build --release
# Create your first wallet
./target/release/neo-cli wallet create --name "MyWallet"
# Check network status
./target/release/neo-cli network status
# Mint an NFT
./target/release/neo-cli nft mint --contract "0x..." --to "NX8..." --token-id "001"
# Explore all commands
./target/release/neo-cli --help
```
### ๐ Rust SDK Library
**Add to your Cargo.toml:**
```toml
[dependencies]
neo3 = "0.4.0"
```
**Quick example:**
```rust
use neo3::prelude::*;
async fn example() -> Result<(), Box<dyn std::error::Error>> {
// Connect to Neo N3 TestNet
let provider = neo_providers::JsonRpcClient::new("https://testnet1.neo.coz.io:443");
// Get blockchain information
let block_count = provider.get_block_count().await?;
println!("Current block height: {}", block_count);
// Create a new wallet
let mut wallet = Wallet::new();
let account = Account::create()?;
wallet.add_account(account);
Ok(())
}
```
## ๐ฏ Core Features
### ๐๏ธ **Complete Neo N3 Support**
- **Blockchain Integration**: Full Neo N3 protocol compatibility
- **Smart Contracts**: Deploy, invoke, and manage contracts
- **Transaction Building**: Construct and sign all transaction types
- **RPC Client**: High-performance JSON-RPC communication
### ๐ผ **Wallet & Account Management**
- **NEP-6 Standard**: Industry-standard wallet format
- **Multi-Account**: Manage multiple accounts per wallet
- **Hardware Wallets**: Ledger device support
- **Secure Storage**: Encrypted private key management
### ๐จ **NFT & Token Operations**
- **NEP-17 Tokens**: Full token standard support
- **NFT Management**: Mint, transfer, and manage NFTs
- **Collection Tools**: Create and manage NFT collections
- **Metadata Handling**: IPFS and on-chain metadata support
### ๐ **Network & Infrastructure**
- **Multi-Network**: MainNet, TestNet, and private networks
- **Node Management**: Connect to multiple Neo nodes
- **Network Monitoring**: Real-time blockchain statistics
- **Health Checks**: Automatic node health monitoring
### ๐ง **Developer Tools**
- **Contract Debugging**: Advanced debugging capabilities
- **Transaction Analysis**: Detailed transaction inspection
- **Gas Optimization**: Fee calculation and optimization
- **Testing Framework**: Comprehensive testing utilities
## ๐ธ Screenshots
### Desktop GUI Application

*Beautiful dashboard with portfolio overview and real-time charts*

*Comprehensive wallet management with multi-account support*

*Elegant NFT collection browser with minting capabilities*
### Command Line Interface

*Powerful CLI with beautiful colored output and progress indicators*
## ๐๏ธ Architecture
### ๐ฆ **Modular Design**
```
NeoRust/
โโโ ๐ neo3/ # Core Rust SDK library
โโโ ๐ฅ๏ธ neo-gui/ # Desktop GUI application (Tauri + React)
โโโ ๐ป neo-cli/ # Command line interface
โโโ ๐ docs/ # Comprehensive documentation
โโโ ๐ website/ # Project website
โโโ ๐งช examples/ # Usage examples and tutorials
```
### ๐ง **Technology Stack**
- **Backend**: Rust with async/await support
- **GUI**: Tauri + React + TypeScript + Tailwind CSS
- **CLI**: Clap + Colored output + Interactive prompts
- **Crypto**: Industry-standard cryptographic libraries
- **Network**: High-performance HTTP/WebSocket clients
## ๐ Documentation
### ๐ **Comprehensive Guides**
- **[API Reference](https://docs.rs/neo3)**: Complete API documentation
- **[User Guide](https://neorust.netlify.app/guide)**: Step-by-step tutorials
- **[Developer Docs](https://neorust.netlify.app/dev)**: Advanced development guides
- **[Examples](https://neorust.netlify.app/examples)**: Real-world usage examples
- **[Release Workflow](docs/RELEASE_WORKFLOW.md)**: Automated release process guide
### ๐ **Online Resources**
- **Website**: [https://neorust.netlify.app/](https://neorust.netlify.app/)
- **Documentation**: [https://r3e-network.github.io/NeoRust/](https://r3e-network.github.io/NeoRust/)
- **Crate Page**: [https://crates.io/crates/neo3](https://crates.io/crates/neo3)
- **GitHub**: [https://github.com/R3E-Network/NeoRust](https://github.com/R3E-Network/NeoRust)
## ๐ฏ Use Cases
### ๐ข **Enterprise Applications**
- **DeFi Platforms**: Build decentralized finance applications
- **Asset Management**: Tokenize and manage digital assets
- **Supply Chain**: Track products on the blockchain
- **Identity Solutions**: Decentralized identity management
### ๐จโ๐ป **Developer Tools**
- **dApp Development**: Build decentralized applications
- **Smart Contract Testing**: Comprehensive testing frameworks
- **Blockchain Analytics**: Monitor and analyze blockchain data
- **Integration Services**: Connect existing systems to Neo
### ๐ฎ **Gaming & NFTs**
- **Game Asset Management**: In-game item tokenization
- **NFT Marketplaces**: Create and trade digital collectibles
- **Metaverse Integration**: Virtual world asset management
- **Creator Tools**: Content creator monetization platforms
## ๐ Getting Started
### 1. **Choose Your Interface**
#### ๐ฅ๏ธ Desktop GUI (Recommended for Users)
```bash
git clone https://github.com/R3E-Network/NeoRust.git
cd NeoRust/neo-gui
npm install && npm run dev
```
#### ๐ป Command Line (Recommended for Developers)
```bash
cd NeoRust/neo-cli
cargo build --release
./target/release/neo-cli --help
```
#### ๐ Rust Library (Recommended for Integration)
```toml
[dependencies]
neo3 = "0.3.0"
```
### 2. **Create Your First Wallet**
#### GUI Method:
1. Open the Neo N3 Wallet application
2. Click "Create Wallet"
3. Follow the secure setup wizard
4. Start managing your Neo assets
#### CLI Method:
```bash
neo-cli wallet create --name "MyFirstWallet"
neo-cli wallet create-address --label "Main Account"
neo-cli wallet balance --detailed
```
#### SDK Method:
```rust
use neo3::prelude::*;
let mut wallet = Wallet::new();
wallet.set_name("MyFirstWallet".to_string());
let account = Account::create()?;
wallet.add_account(account);
```
### 3. **Connect to Neo Network**
#### GUI:
- Network selector in the top navigation
- Real-time connection status
- Automatic health monitoring
#### CLI:
```bash
neo-cli network connect --network "Neo N3 Testnet"
neo-cli network status
```
#### SDK:
```rust
let provider = HttpProvider::new("https://testnet1.neo.coz.io:443")?;
let client = RpcClient::new(provider);
let block_count = client.get_block_count().await?;
```
## ๐ง Advanced Usage
### ๐ ๏ธ **Troubleshooting**
#### Common Build Issues
If you encounter build errors, especially related to `yubihsm` or `MockHsm`, see our [Build Configuration Guide](docs/guides/build-configuration.md) for solutions.
**Quick fix for MockHsm release build error:**
```bash
# Use the mock-hsm feature only for development
cargo build --features "mock-hsm" # Development
cargo build --release # Production (no mock features)
```
#### Getting Help
- **Documentation**: [Build Configuration Guide](docs/guides/build-configuration.md)
- **Issues**: [GitHub Issues](https://github.com/R3E-Network/NeoRust/issues)
- **Discussions**: [GitHub Discussions](https://github.com/R3E-Network/NeoRust/discussions)
### ๐ **Production Deployment**