ZETACHAIN VIBEATHON WINNER!
A cross-chain domain name service powered by ZetaChain's Universal App pattern. Register, transfer, and manage .zeta domains across multiple blockchain networks with seamless cross-chain functionality, beautiful modern interface, and comprehensive marketplace features.
- Cross-Chain Domains: Register domains on Arbitrum Sepolia and Ethereum Sepolia
- Seamless Transfers: Transfer domains between chains using ZetaChain Gateway
- Universal Ownership: Domains work across all supported networks
- ZetaChain Integration: Powered by ZetaChain's Universal App infrastructure
- Arbitrum Sepolia: Primary network (0.001 ETH registration)
- Ethereum Sepolia: Secondary network (0.002 ETH registration)
- ZetaChain Testnet: Cross-chain infrastructure and processing
- Future Networks: BSC Testnet, Polygon Mumbai (planned)
- Burn & Mint: Domains are burned on source chain and minted on target chain
- Gateway Integration: Uses ZetaChain Gateway for secure cross-chain communication
- Real-time Processing: 2-5 minute cross-chain transfer completion
- Event Tracking: Complete transfer history and status monitoring
- .zeta Domains: Register unique domains with .zeta extension
- Instant Registration: 0.001 ETH for 1-year domain registration
- Availability Check: Real-time domain availability verification
- Blockchain Integration: Secure registration via smart contracts on Arbitrum Sepolia
- List Domains: List your domains for sale with fixed pricing
- Buy Domains: Purchase domains directly from other users
- Listing Fees: 0.0001 ETH fee to list domains on marketplace
- Secure Transactions: Smart contract-based escrow system
- Search & Filter: Find domains by name or seller address
- Navigation System: Browse listings with smooth pagination
- Direct Transfer: Instantly transfer domains to another wallet (0.0001 ETH fee)
- Marketplace Integration: Automatic marketplace listing ownership updates
- Cross-Wallet Support: Transfer between different wallet types
- Secure Transactions: Blockchain-verified ownership transfers
- RainbowKit Integration: Modern wallet connection with multiple wallet support
- Arbitrum Sepolia: Automatic network detection and validation
- Connection Status: Real-time wallet connection feedback
- Network Validation: Ensures users are on Arbitrum Sepolia (Chain ID: 421614)
- Glassmorphism Design: Frosted glass effects with backdrop blur
- Dynamic Background: Animated wave effects using HTML Canvas
- Responsive Design: Perfect performance on all screen sizes
- Smooth Animations: Fluid transitions and micro-interactions
- Loading System: Professional loading screens and state management
- Navigation Controls: Arrow-based navigation for large lists
- Domain Portfolio: View all owned domains with status indicators
- Listing Status: See which domains are listed on marketplace
- Transfer History: Complete history of sent and received transfers
- Compact Views: Optimized display with pagination for large collections
- Next.js 15: React framework with App Router
- TypeScript: Full type safety and development experience
- Styled Components: Component-scoped CSS-in-JS styling
- React Icons: Beautiful icon library
- ZetaChain Universal App: Cross-chain domain management using Universal App pattern
- Arbitrum Sepolia: Primary network (Chain ID: 421614)
- Ethereum Sepolia: Secondary network (Chain ID: 11155111)
- ZetaChain Gateway: Cross-chain communication infrastructure
- Hardhat: Smart contract development and deployment
- Ethers.js v6: Latest Ethereum library for blockchain interactions
- Smart Contracts: Solidity-based Universal Name Service contracts
- Wagmi: React hooks for Ethereum integration
- Supabase: PostgreSQL database with real-time features
- Row Level Security: Database-level security policies
- Real-time Sync: Live updates between frontend and database
- RainbowKit: Modern wallet connection library
- MetaMask: Browser extension wallet
- WalletConnect: Mobile and desktop wallet connectivity
- Multiple Wallets: Support for 50+ wallet providers
- HTML Canvas: Dynamic background wave animation
- Simplex Noise: Procedural wave generation algorithm
- Glassmorphism: Modern frosted glass UI effects
- Custom Notifications: Beautiful toast notification system
- Hardhat: Smart contract compilation and deployment
- ESLint: Code quality and consistency
- Git: Version control with proper .gitignore setup
src/
โโโ app/ # Next.js App Router
โ โโโ layout.tsx # Root layout with RainbowKit providers
โ โโโ page.tsx # Main application with all features
โ โโโ globals.css # Global styles
โโโ components/ # Reusable UI components
โ โโโ ConfirmationModal.tsx # Confirmation dialogs
โ โโโ DomainTransfer.tsx # Domain transfer modal
โ โโโ CreateListingModal.tsx # Marketplace listing creation
โ โโโ MarketplaceListings.tsx # Marketplace display component
โ โโโ Notification.tsx # Toast notification system
โโโ contexts/ # React Context providers
โ โโโ WalletContext.tsx # Legacy wallet state management
โโโ lib/ # Utility libraries
โโโ contract.ts # Domain registry contract interactions
โโโ marketplaceContract.ts # Marketplace contract interactions
โโโ marketplace.ts # Marketplace service layer
โโโ supabase.ts # Database service layer
contracts/ # Smart contracts
โโโ ZetaUniversalNameServiceFixed.sol # Universal App domain service
โโโ ZetaUniversalNameService.sol # Legacy Universal App contract
โโโ ZetaOmnichainNameService.sol # Legacy omnichain contract
โโโ ZetaNameService.sol # Legacy single-chain contract
โโโ ZetaNameMarketplace.sol # Marketplace contract for domain trading
scripts/ # Deployment and utility scripts
โโโ deploy-fixed-universal.js # Deploy Universal App contracts
โโโ test-final-crosschain.js # Test cross-chain transfers
โโโ test-frontend-transfer.js # Test frontend functionality
โโโ check-transfer-result.js # Check cross-chain transfer results
โโโ deploy-credit.js # Deploy legacy contracts
โโโ check-contract-balance.js # Check contract balances and earnings
โโโ withdraw-funds.js # Withdraw accumulated fees
โโโ sync-marketplace-ownership.js # Fix marketplace ownership issues
โโโ debug-marketplace.js # Debug marketplace configuration
public/
โโโ Logo2.png # Application logo
โโโ favicon.ico # Browser favicon
- Primary: Green gradients (#22c55e, #065f46)
- Background: Dark theme with animated wave effects
- Text: White and light gray for readability
- Status Colors: Green for active/available, red for expired/taken, blue for listed
- Headers: Bold, gradient text effects
- Body Text: Clean, readable fonts
- Interactive Elements: Highlighted with color and weight
- Glass Cards: Frosted glass with backdrop blur
- Search Box: Focused input with domain extension
- Buttons: Gradient backgrounds with hover animations
- Navigation: Bottom tab navigation
- Node.js 18 or higher
- npm or yarn package manager
- Web3 wallet (MetaMask, OKX, or WalletConnect compatible)
- Supabase account (for backend database)
-
Clone the repository
git clone <repository-url> cd umi-name-service
-
Install dependencies
npm install
-
Configure environment variables
cp .env.example .env.local
Edit
.env.localfile:# Supabase Configuration NEXT_PUBLIC_SUPABASE_URL=your_supabase_url_here NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key_here # Wallet Configuration NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_project_id # Contract Addresses (FIXED Universal App) NEXT_PUBLIC_ARB_NAME_SERVICE_ADDRESS=0x813F8CfB8897F46bF0fD21914Cb76a21FD3a97Dd NEXT_PUBLIC_ETH_NAME_SERVICE_ADDRESS=0x7Dd728c2AF6553801DDc2Be4906f09AcB33C2A74 # Gateway Addresses (ZetaChain) NEXT_PUBLIC_ARB_GATEWAY_ADDRESS=0x0dA86Dc3F9B71F84a0E97B0e2291e50B7a5df10f NEXT_PUBLIC_ETH_GATEWAY_ADDRESS=0x0c487a766110c85d301d96e33579c5b317fa4995 # RPC Endpoints NEXT_PUBLIC_ARB_SEPOLIA_RPC_URL=https://sepolia-rollup.arbitrum.io/rpc NEXT_PUBLIC_ETH_SEPOLIA_RPC_URL=https://1rpc.io/sepolia # Deployment PRIVATE_KEY=your_wallet_private_key_for_deployment CONTRACT_OWNER_ADDRESS=your_contract_owner_address
-
Set up Supabase database
- Create a new project in Supabase dashboard
- Run SQL commands from
docs/supabase-schema.sql - Enable RLS (Row Level Security) policies
-
Deploy smart contracts (optional)
# Compile contracts npx hardhat compile # Deploy Universal App contracts npx hardhat run scripts/deploy-fixed-universal.js --network arbitrumSepolia npx hardhat run scripts/deploy-fixed-universal.js --network ethereumSepolia # Test cross-chain functionality npx hardhat run scripts/test-final-crosschain.js --network arbitrumSepolia
-
Start development server
npm run dev
-
Open in browser
http://localhost:3000
-
Create Supabase Project
- Go to supabase.com
- Create a new project
- Get project URL and anon key
-
Set up Database Schema
- Open Supabase SQL Editor
- Copy content from
docs/supabase-schema.sql - Execute the SQL commands
-
Verify RLS Policies
- Check policies in Authentication > Policies section
- Add policies manually if needed
- Install a compatible Web3 wallet (MetaMask recommended)
- Add Arbitrum Sepolia to your wallet:
- Network Name: Arbitrum Sepolia
- RPC URL: https://sepolia-rollup.arbitrum.io/rpc
- Chain ID: 421614
- Currency Symbol: ETH
- Block Explorer: https://sepolia.arbiscan.io
- Arbitrum Sepolia: Primary network (Chain ID: 421614) - 0.001 ETH registration
- Ethereum Sepolia: Secondary network (Chain ID: 11155111) - 0.002 ETH registration
- ZetaChain Testnet: Cross-chain infrastructure (Chain ID: 7001)
- RainbowKit handles network switching automatically
- Users will be prompted to switch if on wrong network
- Universal Name Service: Cross-chain domain registration and management
- ZetaChain Gateway: Cross-chain communication infrastructure
- Marketplace: Domain trading and listings (legacy)
- Registration Fees: 0.001 ETH (Arbitrum), 0.002 ETH (Ethereum)
- Transfer Fee: 0.0001 ETH per transfer
- Cross-Chain Transfer: Burn on source, mint on target chain
- Owner: Contract owner can withdraw accumulated fees
- Connect Wallet: Use RainbowKit to connect your preferred wallet
- Select Network: Choose Arbitrum Sepolia or Ethereum Sepolia
- Search Domain: Enter your desired domain name in the search box
- Check Availability: Click "Search" to check if the domain is available
- Register: If available, click "Register Domain" and confirm the transaction
- Pay Fee: Pay 0.001 ETH (Arbitrum) or 0.002 ETH (Ethereum) for 1 year registration
- Enable Omnichain: Check "Make Omnichain" to enable cross-chain transfers
- View Profile: Click the "Profile" tab in bottom navigation
- Domain List: See all your registered domains with navigation controls
- Transfer Domains: Click transfer button to send domains to other wallets (0.0001 ETH fee)
- List for Sale: Click list button to put domains on marketplace (0.0001 ETH fee)
- Status Check: Monitor active/expired and listing status
- Select Domain: Choose omnichain-enabled domain from your profile
- Select Target Chain: Choose destination network (Arbitrum โ Ethereum)
- Enter Recipient: Input recipient wallet address
- Pay Fee: Transfer requires 0.0001 ETH fee
- Sign Transfer: Sign the cross-chain transfer transaction
- Wait for Processing: Cross-chain transfer takes 2-5 minutes
- Domain Burned: Domain is burned on source chain
- Domain Minted: Domain is minted on target chain
- Transfer Complete: Recipient owns domain on target chain
- Select Domain: Choose domain from your profile
- Enter Recipient: Input recipient wallet address
- Pay Fee: Transfer requires 0.0001 ETH fee
- Sign Transfer: Sign the transfer transaction
- Instant Transfer: Domain ownership updates immediately
- Browse Market: Click "Market" tab to see available domains
- Search Domains: Use search to find specific domains or sellers
- Buy Domains: Click "Buy Now" to purchase listed domains
- Your Listings: See "Your Listing" for domains you've listed
- View History: Click "History" tab to see all transfers
- Sent/Received: See transfers you've sent and received with navigation
- Transaction Links: Click to view on blockchain explorer
- Status Tracking: Monitor transfer completion status
- Multiple Options: Choose from MetaMask, OKX Wallet, or WalletConnect
- Network Check: App automatically verifies Umi Devnet connection
- Auto Switch: Prompts to switch to Umi Devnet if needed
- Disconnect: Easy wallet disconnection from profile
- .zeta Extension: All domains end with .zeta
- 1 Year Registration: Domains are registered for 1 year periods
- 0.001 ETH Fee: Fixed registration fee in ETH
- Transfer Fee: 0.0001 ETH for domain transfers
- Instant Search: Real-time availability checking
- Clean Design: Minimalist, focused interface
- Visual Feedback: Clear status indicators and animations
- Responsive: Works on desktop, tablet, and mobile
- Accessibility: Keyboard navigation and screen reader support
- Arbitrum Sepolia: Native integration with Arbitrum Sepolia
- Smart Contracts: Decentralized domain registry and marketplace
- RainbowKit: Modern wallet connectivity
- Transaction Handling: Smooth transaction flow with proper error handling
- Domain Renewal: Extend domain registration periods
- Auction System: Auction-based domain sales
- Subdomain Support: Create subdomains for registered domains
- Bulk Registration: Register multiple domains at once
- Domain Analytics: Usage statistics and insights
- Offer System: Make offers on unlisted domains
- IPFS Integration: Decentralized content hosting
- Cross-chain Support: Multi-network domain resolution
- Mobile App: React Native mobile application
- Advanced Filtering: Filter by price, age, length
- Gas Optimization: Reduce transaction costs
- Real-time Updates: WebSocket-based live updates
- Theme Switching: Dark/Light mode toggle
- Internationalization: Multi-language support
- Advanced Animations: More sophisticated transitions
- Customization: Personalized user preferences
- Improved Notifications: Enhanced notification system
We welcome contributions to Umi Name Service! Here's how you can help:
- Fork the Repository: Create your own fork
- Create Feature Branch:
git checkout -b feature/amazing-feature - Make Changes: Implement your feature or fix
- Add Tests: Ensure your changes are tested
- Commit Changes:
git commit -m 'Add amazing feature' - Push to Branch:
git push origin feature/amazing-feature - Open Pull Request: Submit your changes for review
- Follow TypeScript best practices
- Use styled-components for styling
- Maintain component reusability
- Add proper documentation and comments
- Test on multiple browsers and devices
This project is licensed under the MIT License - see the LICENSE file for details.
- Zeta Omnichain: Future-ready omnichain approach
- RainbowKit: Modern wallet connection library
- WalletConnect: Multi-wallet connectivity protocol
- Next.js Team: Amazing React framework
- Styled Components: CSS-in-JS styling solution
- Supabase: Backend-as-a-Service platform
For support, questions, or feedback:
- GitHub Issues: Report bugs or request features
- Arbitrum Docs: https://docs.arbitrum.io
- Community: Join our Discord or Telegram communities
- Arbitrum Sepolia: https://sepolia.arbiscan.io
- Ethereum Sepolia: https://sepolia.etherscan.io
- ZetaChain Testnet: https://athens.explorer.zetachain.com
- Arbitrum Sepolia: https://sepolia-rollup.arbitrum.io/rpc
- Ethereum Sepolia: https://1rpc.io/sepolia
- ZetaChain Testnet: https://zetachain-athens-evm.blockpi.network/v1/rpc/public
- Arbitrum Name Service:
0x813F8CfB8897F46bF0fD21914Cb76a21FD3a97Dd - Ethereum Name Service:
0x7Dd728c2AF6553801DDc2Be4906f09AcB33C2A74 - Arbitrum Gateway:
0x0dA86Dc3F9B71F84a0E97B0e2291e50B7a5df10f - Ethereum Gateway:
0x0c487a766110c85d301d96e33579c5b317fa4995
- โ Universal App Contracts: Deployed on Arbitrum Sepolia & Ethereum Sepolia
- โ ZetaChain Integration: Gateway addresses configured and working
- โ Cross-Chain Transfers: Burn & mint functionality working
- โ Frontend: Complete with cross-chain features
- โ Database: Supabase integration with RLS policies
- โ Wallet Integration: RainbowKit with 50+ wallet support
- โ Domain Registration: Multi-chain registration (Arbitrum & Ethereum)
- โ Cross-Chain Transfer: Seamless chain-to-chain transfers
- โ Domain Burning: Source chain domain burning working
- โ Domain Minting: Target chain domain minting working
- โ Gateway Communication: ZetaChain Gateway integration working
- โ Transfer History: View all transfer activity with navigation
- โ Profile Management: Multi-chain domain management
- โ Search & Navigation: Advanced search and pagination systems
- โ Security: No hardcoded private keys, environment-based configuration
Built with โค๏ธ for the ZetaChain Universal App ecosystem
Register your .zeta domain today and transfer it seamlessly across chains!
For detailed system architecture diagrams and technical documentation, see: