neo3 0.4.0

Rust SDK for Neo N3
Documentation

NeoRust v0.4.0 - Production-Ready Neo N3 SDK

Rust Release Netlify Status Crates.io Documentation License: MIT License: 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 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

# 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:

# 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:

# 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:

[dependencies]
neo3 = "0.4.0"

Quick example:

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

Neo N3 Wallet Dashboard Beautiful dashboard with portfolio overview and real-time charts

Wallet Management Comprehensive wallet management with multi-account support

NFT Marketplace Elegant NFT collection browser with minting capabilities

Command Line Interface

CLI Commands 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

๐ŸŒ Online Resources

๐ŸŽฏ 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)

git clone https://github.com/R3E-Network/NeoRust.git
cd NeoRust/neo-gui
npm install && npm run dev

๐Ÿ’ป Command Line (Recommended for Developers)

cd NeoRust/neo-cli
cargo build --release
./target/release/neo-cli --help

๐Ÿ“š Rust Library (Recommended for Integration)

[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:

neo-cli wallet create --name "MyFirstWallet"
neo-cli wallet create-address --label "Main Account"
neo-cli wallet balance --detailed

SDK Method:

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:

neo-cli network connect --network "Neo N3 Testnet"
neo-cli network status

SDK:

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 for solutions.

Quick fix for MockHsm release build error:

# Use the mock-hsm feature only for development
cargo build --features "mock-hsm"  # Development
cargo build --release              # Production (no mock features)

Getting Help

๐Ÿš€ Production Deployment