A comprehensive NFT deployment and management platform on the Plasma blockchain. Create, deploy, and manage your own NFT collections with advanced features like Merkle tree whitelisting, time-based scheduling, custom mint pages, and more.
Website: https://gen-plasma.com
Gen-Plasma is a full-featured NFT platform that allows artists and creators to:
- Deploy their own ERC-721 NFT collections without coding
- Customize mint pages with banners, descriptions, and settings
- Manage whitelist groups with Merkle tree verification
- Schedule time-based mint windows for exclusive drops
- Explore all collections deployed through the platform
- View owned NFTs across all collections in one wallet
The platform supports three collection types, each with different feature sets and pricing:
- β Custom mint page with collection branding
- β Up to 10,000 NFTs per collection
- β Configurable mint price
- β ERC-721 standard compliance
- β Metadata storage with IPFS support
- β Automatic contract deployment
- β Ownership and access controls
All Basic features, plus:
- β Merkle tree whitelist system with on-chain verification
- β Time-based mint scheduling (start/end times per whitelist group)
- β Multiple whitelist groups with independent settings
- β Public minting after whitelist periods end
- β Multi-edition support for limited releases
All Editions features, plus:
- β Royalty management with configurable percentages
- β Advanced metadata controls
- β Custom tokenURI functionality
- β Extended admin controls
- β Priority support and updates
Special Offer: Gen-Plasma NFT holders get 50% off all deployments!
Interactive visual builder for creating collections:
-
Contract Configuration
- Collection name and symbol
- Total supply (up to 10,000 NFTs)
- Mint price in XPL
- Contract type selection
-
Artwork Upload
- Bulk image upload (PNG, JPG, WEBP, SVG)
- Automatic metadata generation
- IPFS integration for decentralized storage
- Preview before deployment
-
Payment & Deployment
- Secure payment verification on-chain
- Automatic contract compilation
- Contract deployment to Plasma mainnet
- Etherscan verification
-
Post-Deployment
- Automatic mint page creation
- Admin access for collection management
- Whitelist setup (Editions/Pro only)
- Custom page settings
Advanced whitelist system with cryptographic verification:
- On-chain verification using Merkle proofs
- Gas-efficient - stores only root hash on-chain
- Secure - cryptographically proven whitelist membership
- Flexible - update whitelist without new deployment
- Per-group scheduling - each whitelist group has independent mint times
- Timezone support - schedule mints in any timezone
- Automatic activation - mint opens/closes automatically
- Public minting - automatically enables after all groups close
- Create unlimited whitelist groups
- Import addresses from CSV/text
- Set mint times per group
- Activate on-chain with one click
- Update Merkle roots as needed
- Create whitelist group with name
- Import wallet addresses
- Set mint start/end times (optional)
- Generate Merkle root (off-chain)
- Activate on-chain (stores root hash)
- Users can mint with proof verification
Every collection gets a fully customizable mint page:
- Banner Image - Upload custom header image (1200x300px recommended)
- Background Theme - Choose from 13+ gradient presets
- Collection Description - Rich text description with formatting
- Social Links - X (Twitter), Discord, website links
- Minting Controls - Enable/disable minting, set pricing
- Wallet Connection - RainbowKit integration
- Network Detection - Auto-detects and switches to Plasma
- Quantity Selection - Mint multiple NFTs at once
- Payment Calculation - Real-time price calculations
- Transaction Tracking - Live mint status updates
- Collection Stats - Supply, minted count, availability
- PlasmaExplorer Links - Direct contract verification links
- Shows active whitelist groups
- Displays mint window times
- Group-specific mint buttons
- User whitelist status
- Public mint availability
Discover all collections deployed through the platform:
- Collection Name & Type - Basic, Editions, or Pro badge
- Preview Image - First NFT or banner image
- Supply Info - Total supply and minted count
- Mint Price - Displayed in XPL
- Status Tags:
- β Certified - Verified collections
- π« Whitelisted - Has active whitelist groups
- Quick Access - Direct links to mint pages
- Filter by collection type (Basic, Editions, Pro)
- Sort by date, price, or popularity
- Search by name or contract address
View all your NFTs across all platform collections:
- Gen-Plasma Collection - Featured collection with all NFTs
- Other Collections - Dynamically fetched from all platform contracts
- IPFS Metadata - Fetches images directly from tokenURI
- Smart Discovery - Automatically finds owned tokens
- Image Loading - Converts IPFS URIs to HTTP gateways
- ERC721Enumerable - Fast enumeration (if supported)
- ownerOf Scan - Scans token IDs 1-20 for ownership
- Metadata Fetching - Gets tokenURI and IPFS metadata
- Image Conversion - Handles ipfs:// URIs automatically
- Shows collection name and type
- Displays owned NFTs (up to 6 previewed)
- "View Mint Page" button for each collection
- Token count and collection info
- Framework: Next.js 14 with TypeScript
- Styling: Tailwind CSS with custom components
- Web3: Wagmi v1, Viem, RainbowKit
- State: React hooks and context
- API: Next.js API routes
- Database: Supabase (PostgreSQL)
- Storage: Supabase Storage + IPFS
- Blockchain: Plasma Mainnet (Chain ID: 9745)
- RPC: https://rpc.plasma.to
- Explorer: PlasmaExplorer
- Standard: ERC-721 (OpenZeppelin)
- Extensions:
- ERC721URIStorage (metadata)
- Ownable (access control)
- ReentrancyGuard (security)
- Pausable (emergency stops)
- Custom Features:
- Merkle tree whitelist verification
- Time-based mint windows
- Royalty support (ERC-2981)
- Payment Verification: On-chain transaction validation
- Duplicate Prevention: Payment hash tracking
- Timestamp Checks: Recent transaction requirements
- Recipient Verification: Treasury address validation
- Reentrancy Guards: Prevent double-spend attacks
- Access Controls: Owner-only functions
Stores all deployed collections:
- contract_address (primary key)
- contract_name, symbol, type
- max_supply, mint_price
- deployer_address
- is_featured, is_active
- social links (x_profile, discord, website)
- timestampsManages whitelist groups:
- id (UUID)
- contract_address
- group_name
- addresses (array)
- merkle_root
- is_activated_onchain
- mint_start_time, mint_end_time
- timezone, is_time_scheduled
- timestampsCustom mint page configurations:
- contract_address (primary key)
- page_description
- background_theme
- created_at, updated_atCollection banner images:
- contract_address (primary key)
- banner_url
- uploaded_atNFT metadata storage:
- id (UUID)
- contract_address
- token_id
- name, description
- image_url
- attributes (JSON)
- created_atDeployment payment tracking:
- id (UUID)
- deployment_id
- user_address
- transaction_hash (unique)
- amount
- verified_at- Admin creates whitelist group with wallet addresses
- Generate Merkle tree from addresses off-chain
- Calculate Merkle root (32-byte hash)
- Store root on-chain via
createWhitelistGroup() - User requests mint with their address
- Frontend generates proof from stored tree
- Smart contract verifies proof against stored root
- Mint succeeds if proof is valid
- β Gas efficient - Only stores root hash on-chain
- β Scalable - Unlimited addresses without increasing gas
- β Secure - Cryptographically proven membership
- β Updatable - Can regenerate and update root
- β Privacy - Full whitelist not exposed on-chain
function createWhitelistGroup(
bytes32 merkleRoot,
uint256 startTime,
uint256 endTime
) external onlyOwner
function mint(
uint256 quantity,
bytes32[] calldata merkleProof,
uint256 groupId
) external payableThe flagship collection features generative plasma art:
- 7 unique pattern types using plasma physics
- Deterministic generation from token ID seed
- SVG vector format for perfect scaling
- Mathematical simulations of fluid dynamics
- Golden ratio color distribution
- 3D depth effects with perspective
- Address:
0xB10d640B74016ed2b8E1f59CA931467D16534D08 - Total Supply: 10,000 NFTs
- Mint Price: 1.0 XPL
- Status: β Live & Minting Active
- Flowing Particle Streams - Turbulent flow fields
- 3D Swirling Vortex - Multi-layered spirals
- Particle Field Interactions - N-body physics
- Flowing Particle Ribbons - BΓ©zier curves
- Radial Particle Burst - Polar distributions
- True Fluid Energy Field - Navier-Stokes flow
- Volumetric Energy Cloud - 3D volume rendering
- Legendary (~2%) - Highest complexity
- Epic (~8%) - Advanced patterns
- Rare (~20%) - Unique features
- Uncommon (~30%) - Interesting traits
- Common (~40%) - Standard generation
- Node.js 18+
- npm or yarn
- Supabase account
- Plasma network wallet (MetaMask)
# Clone repository
git clone https://github.com/yourusername/gen-plasma-nft-collection.git
cd gen-plasma-nft-collection
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your values# Frontend
NEXT_PUBLIC_BASE_URL=http://localhost:3000
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_id
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Blockchain
NEXT_PUBLIC_TREASURY_ADDRESS=0xYourTreasuryAddress
NEXT_PUBLIC_GEN_PLASMA_CONTRACT=0xB10d640B74016ed2b8E1f59CA931467D16534D08
# Hardhat (for contract deployment)
PRIVATE_KEY=your_private_key
PLASMASCAN_API_KEY=your_plasmascan_api_keynpm run dev
# Open http://localhost:3000npm run build
npm start# Compile contracts
npx hardhat compile
# Deploy to Plasma
npx hardhat run scripts/deploy.js --network plasma
# Verify on PlasmaExplorer
npx hardhat verify --network plasma <CONTRACT_ADDRESS> <CONSTRUCTOR_ARGS>βββ app/ # Next.js 14 app directory
β βββ create/ # Deployment pages
β β βββ builder/ # Visual collection builder
β β βββ page.tsx # Deployment options
β βββ mint/[contractAddress]/ # Dynamic mint pages
β βββ explore/ # Collection discovery
β βββ wallet/ # NFT wallet viewer
β βββ collection/ # Gen-Plasma collection
β
βββ components/ # React components
β βββ Header.tsx # Navigation header
β βββ Footer.tsx # Site footer
β βββ MintCard.tsx # Mint interface
β βββ PaymentModal.tsx # Payment verification
β βββ CollectionItem.tsx # Collection cards
β βββ ... # Other components
β
βββ pages/api/ # API routes
β βββ deploy/ # Contract deployment
β β βββ deploy-contract-typed.ts
β β βββ process-payment.ts
β βββ whitelist/ # Whitelist management
β β βββ save-group.ts
β β βββ get-groups.ts
β β βββ generate-merkle-root.ts
β β βββ get-merkle-proof.ts
β βββ mint-page-settings/ # Page customization
β βββ metadata/ # NFT metadata
β βββ ... # Other endpoints
β
βββ contracts/ # Solidity contracts
β βββ PlasmaNFT.sol # Gen-Plasma collection
β βββ PlasmaNFTBasic.sol # Basic template
β βββ PlasmaNFTEditions.sol # Editions template
β βββ PlasmaNFTPro.sol # Pro template
β
βββ lib/ # Utility libraries
β βββ supabase.ts # Supabase client
β βββ wagmi.ts # Web3 configuration
β βββ contract.ts # Contract utilities
β βββ merkleTree.ts # Merkle tree functions
β
βββ scripts/ # Deployment scripts
β βββ deploy.js # Contract deployment
β βββ verify-contract.js # Verification
β
βββ public/ # Static assets
- π Website: https://gen-plasma.com
- π¨ Collection Builder: https://gen-plasma.com/create/builder
- π Explore Collections: https://gen-plasma.com/explore
- πΌ Wallet: https://gen-plasma.com/wallet
- βοΈ Gen-Plasma Contract: PlasmaExplorer
- π Bridge XPL: Stargate Finance
- π± Swap XPL: Matcha
- π Plasma Network: https://plasma.to
- π Wagmi Docs: https://wagmi.sh
- π Viem Docs: https://viem.sh
- π RainbowKit Docs: https://rainbowkit.com
- π Next.js Docs: https://nextjs.org/docs
- π Supabase Docs: https://supabase.com/docs
- β OpenZeppelin battle-tested contracts
- β ReentrancyGuard on all payable functions
- β Owner access controls
- β Pausable for emergency stops
- β Comprehensive input validation
- β On-chain transaction verification
- β Duplicate transaction prevention
- β Timestamp validation (24-hour window)
- β Recipient address verification
- β Amount verification
- β Rate limiting on endpoints
- β Input sanitization
- β CORS configuration
- β Environment variable protection
- β Supabase RLS policies
- β‘ Page Load: < 1s (Vercel Edge)
- β‘ NFT Generation: 20-150ms average
- β‘ Contract Deployment: ~30 seconds
- β‘ Mint Transaction: 1-2 seconds
- β‘ API Response: < 200ms average
- Image optimization with Next.js Image
- Code splitting and lazy loading
- Supabase connection pooling
- IPFS gateway caching
- Client-side caching strategies
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenZeppelin - Smart contract libraries
- Plasma Network - Blockchain infrastructure
- RainbowKit - Wallet connection UX
- Vercel - Hosting and deployment
- Supabase - Database and storage
For support, feature requests, or bug reports:
- π GitHub Issues: Create an issue
- π¬ Discord: Join our community
- π¦ Twitter/X: @GenPlasma
Gen-Plasma Platform - Empowering creators to launch NFT collections on Plasma. β‘π¨