System Overview
Inuverse is a completely full on-chain NFT ecosystem composed of three independent components:
Copy ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ NFT Generator │ │ Smart │
│ (Next.js) │ │ (Python) │ │ Contracts │
│ │ │ │ │ (Sui Move) │
│ - React 19 │───▶│ - Layer Comp. │───▶│ - inuverse pkg │
│ - Tailwind v4 │ │ - SVG Process │ │ - inu_token pkg │
│ - Asset Manager │ │ - Parts Catalog │ │ - inu_test pkg │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Static Assets │ │ Parts Library │ │ Sui Network │
│ │ │ │ │ │
│ - UI Components │ │ - 52 SVG Parts │ │ - Full On-chain │
│ - Animations │ │ - 15-Layer Sys │ │ - Dynamic DOF │
│ - Icons/Images │ │ - Registration │ │ - Hot Potato │
└─────────────────┘ └─────────────────┘ └─────────────────┘ Technology Stack
Framework : Next.js 15.3.2 (App Router)
Development : Turbopack (fast builds)
Code Quality : Biome (formatter/linter)
Asset Structure
Prepared UI/UX assets:
Button Assets : Wallet connection, minting, customization UI
Selection Icons : Ear, tail, pattern, color selection
Loading Animations : Paw animations
Homepage Assets : Logo, branding materials
Smart Contracts
Inuverse consists of three independent Sui Move packages, implementing a completely full on-chain NFT system.
Package Structure
1. inuverse - Production NFT System
9 Module Configuration :
types.move (930+ lines): Core data structures and error definitions
inuverse.move : Package initialization and Display configuration
parts_registry.move : Dynamic Object Fields (DOF) based parts management
nft.move : NFT minting and updating with 15-part validation (700+ lines)
admin.move : Phase control and user management
accessors.move : Public read functions for NFT data
inu_integration.move : INU token integration and Hot Potato Pattern
item_nft.move : Item NFT system with rarity and stats
item_shop.move : Item shop with inventory and purchase limits
Key Features :
15-Layer SVG System : Background(1) + Body(5) + Ear(4) + Pattern(1) + Tail(4)
Hierarchical Permission System : SuperAdminCap → PartAdminCap/MintAdminCap/WhitelistAdminCap/ItemAdminCap
Phased Minting System : Free mint/Whitelist(9SUI)/Public(13SUI), maximum 1,111 pieces
INU Token Economy : Item purchases, Hot Potato Pattern, in-game item NFTs
DOF-based Parts Library : Efficient centralized management, real-time update support
2. inu_token - In-game Token System
Closed-loop Game Currency :
Zero Decimals : Integer tokens for simple game mechanics
Minting : SUI/USDC payments with configurable exchange rates
Non-transferable : Outside the game ecosystem
Modular Architecture : exchange, shop, policy, treasury modules
Revenue Collection : Admin management capabilities
3. inu_test - Proof of Concept
5-Layer System Validation :
Background, body, ear, pattern, tail layers
SVG data stored as double URL-encoded <image> tags
Demonstrates feasibility of dynamic SVG updates via update_layers()
Successfully tested Sui Display for automatic SVG composition
Technical Innovations
Dynamic Object Fields (DOF)
Efficient on-chain data management system enabling:
Central parts library management
Real-time NFT appearance updates
Scalable data structure for thousands of parts
Hot Potato Pattern
Atomic transaction guarantee system:
ItemPurchaseTicket creation → INU token burn → ItemNFT mint
Prevents incomplete transactions
Ensures payment validation
SVG Composition System
Real-time on-chain SVG generation:
15-layer dynamic composition
Double URL encoding for data integrity
Sui Display automatic rendering
No external dependencies (fully on-chain)
Hierarchical Permission System
Flexible and secure management:
Free Mint : Selected users only (free)
Whitelist Mint : Whitelist participants (9 $SUI)
Public Mint : General users (13 $SUI)
Max Supply : Limited to 1,111 pieces
Admin Mint : Airdrop functionality by administrators
Parts System Architecture
15-Layer Configuration
Background : Choose from bg_1~bg_5
Body : base, eye(1 or 2), eye_highlight, outline, shadow
Ear : base/outline/pattern/shadow (1~6 variations each)
Pattern : Choose from pattern_1~pattern_6
Tail : base/outline/pattern/shadow (1~4 variations each)
Management Features
Dynamic Object Fields : Efficient centralized management via PartsLibrary
Real-time Updates : Post-mint NFT appearance changes possible
Metadata Management : Category indexing, creator tracking, disable functionality
Item NFT & Shop Integration
Item Types & Rarity
4 Item Types : Equipment, Consumable, Cosmetic, Boost
4-tier Rarity : Common, Rare, Epic, Legendary
Stats System : Attack, defense, speed bonus, special effects
Inventory Management : User purchase limits, stock tracking, sales statistics
Purchase History : User-specific purchase records, expenditure tracking
Hot Potato Integration : Safe atomic transaction flow
NFT Image Generator
Technology Stack
Image Processing : PIL/Pillow
Configuration : YAML-based config system
Output : PNG images with metadata JSON
Total Parts : 52 unique SVG components
Source Location : /nft_img/dog/ directory
Metadata : /nft_img/dog_parts_list.json
Generation : 100 unique variations with balanced distribution
setup_env.sh : Environment variable configuration (144 lines)
register_parts.sh : Automated parts registration (446 lines)
Comprehensive Documentation : 264-line README with troubleshooting
Integration Architecture
Package Independence
Each Move package has its own Move.toml and dependencies
Build and deploy packages separately
Different addresses for each deployment
Cross-package integration via Hot Potato Pattern
Comprehensive audit trail:
Token transactions and burns
Item purchases and equipment
Technical Patterns
SVG Layer Encoding
When passing SVG data to mint/update functions:
First encode the SVG content
Then URL encode the entire data URI
Result: data:image/svg+xml;utf8,%3Csvg%20...%3C/svg%3E
Parts Registration Flow
Initialize PartsLibrary with SuperAdminCap
Create PartAdminCap for parts management
Register all 52 parts using automation scripts
Enable public/whitelist minting phases
This architecture ensures a completely decentralized, full on-chain NFT experience with no external dependencies while maintaining high performance and user experience quality.
Last updated 8 months ago