Technical Architecture

System Overview

Inuverse is a completely full on-chain NFT ecosystem composed of three independent components:

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   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    │
└─────────────────┘    └─────────────────┘    └─────────────────┘

Frontend

Technology Stack

  • Framework: Next.js 15.3.2 (App Router)

  • UI Library: React 19.0.0

  • Styling: Tailwind CSS v4

  • Development: Turbopack (fast builds)

  • Code Quality: Biome (formatter/linter)

  • Fonts: Geist Sans/Mono

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:

Minting System

  • 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

Shop Features

  • 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

  • Language: Python 3.x

  • Image Processing: PIL/Pillow

  • Configuration: YAML-based config system

  • Output: PNG images with metadata JSON

Parts Library

  • 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

Automation Tools

  • 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

Event System

Comprehensive audit trail:

  • NFT minting and updates

  • Token transactions and burns

  • Item purchases and equipment

  • Administrative actions

Technical Patterns

SVG Layer Encoding

When passing SVG data to mint/update functions:

  1. First encode the SVG content

  2. Then URL encode the entire data URI

  3. Result: data:image/svg+xml;utf8,%3Csvg%20...%3C/svg%3E

Parts Registration Flow

  1. Deploy inuverse package

  2. Initialize PartsLibrary with SuperAdminCap

  3. Create PartAdminCap for parts management

  4. Register all 52 parts using automation scripts

  5. 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