QryptoLauncher is a decentralized, no-code web application and factory smart contract suite designed for deploying EVM-compatible ERC20 tokens and ERC721 NFT collections directly from a web browser wallet.
- Problem Statement
- Solution Overview
- Tech Stack
- Deployed Smart Contracts
- Core Features
- System Architecture
- Repository Structure
- Getting Started
- Security & Best Practices
- License
Deploying custom smart contracts on Ethereum-compatible blockchains traditionally presents significant technical barriers:
- Required Technical Expertise: Developers must write custom Solidity code, set up deployment frameworks (Hardhat, Foundry), write compile scripts, and manage environment variables.
- Complex Asset Hosting: NFT creators must manually format token metadata schemas, run IPFS nodes or configure pinning services, and construct compliant Base URI pointers.
- Custodial & High-Cost Services: Existing launchpads often enforce high deployment fees, require centralized user registration, or retain control over contract ownership and mint privileges.
QryptoLauncher addresses these challenges by offering a self-serve, non-custodial Web3 portal:
- Zero Solidity Required: Standardized, battle-tested OpenZeppelin ERC20 and ERC721 contracts are deployed via factory contracts in a single transaction.
- Self-Custodial Deployment: 100% of the token supply and contract ownership are minted directly to the creator's wallet upon deployment.
- Automated IPFS Pinning: Integrated Pinata service automatically uploads collection media assets and generates standards-compliant ERC721 metadata folders.
- Multi-Chain Support: Native support for Base Mainnet and Sepolia Testnet with real-time network switching, transparent service fee displays, and automated block explorer integration.
- Framework: Next.js 16 (App Router)
- Library: React 19
- Styling: Tailwind CSS v4
- State & Hooks: Wagmi v3
- EVM Client: Viem v2
- Data Fetching: TanStack React Query v5
- Wallet Provider: MetaMask (Injected Provider)
- Language: Solidity
^0.8.28(Target EVM:cancun) - Libraries: OpenZeppelin Contracts v5
- Tooling: Hardhat, Hardhat Toolbox
- Testing: Ethers.js v6, Mocha, Chai
- Provider: Pinata IPFS Gateway & REST API
The factory contracts are deployed and verified on both Base Mainnet and Sepolia Testnet.
| Contract | Address | Explorer |
|---|---|---|
| ERC20 Factory | 0x172B0EaDf99c26dc03e4AAF503dE1791c540844a |
Basescan |
| ERC721 Factory | 0xc715DEd4f82A9AEe2CD172A9da3431269C750d21 |
Basescan |
| Contract | Address | Explorer |
|---|---|---|
| ERC20 Factory | 0xd809A03876fe8c10f1dB5FD0bf0C80B4eD873389 |
Etherscan |
| ERC721 Factory | 0x895C7F82587c63942a973bf1e4c3a998aF1040f3 |
Etherscan |
- Configurable Name, Symbol, and Initial Supply.
- Automated 18-decimal supply calculation (
parseUnits). - Minting of 100% initial supply to the deployer wallet.
- Fixed 0.00027 ETH protocol fee per deployment.
- Image upload with automatic Pinata IPFS metadata compilation.
- Configurable collection name, symbol, description, and maximum supply cap.
- Owner-controlled batch minting interface.
- Automatic token URI pointer configuration (
ipfs://<cid>/).
- Real-time indexing of all user-deployed tokens and collections using multicall factory queries.
- Direct links to contracts on Basescan and Etherscan.
- Display of total token supplies, total minted NFTs, and token balances.
- Seamless network switching between Base Mainnet and Sepolia Testnet in the top navigation header.
- Dynamic network status badges and contextual safety notifications.
graph TD
User([User Browser / MetaMask]) -->|1. Inputs Details & Uploads Asset| Frontend[Next.js Frontend App]
Frontend -->|2. Pins Image & Metadata| Pinata[Pinata IPFS Storage]
Pinata -->|3. Returns Metadata CID| Frontend
Frontend -->|4. Calls createToken / createCollection| Factory[Erc20Factory / ERC721Factory Contract]
Factory -->|5. Deploys Instance & Mints Assets| NewContract[New ERC20 / ERC721 Contract]
NewContract -->|6. Receives Tokens/Collection| User
QryptoLauncher/
├── frontend/ # Next.js Web Application
│ ├── app/ # Next.js App Router pages
│ │ ├── page.js # Homepage & overview
│ │ ├── erc20/page.js # ERC20 creation flow
│ │ ├── erc721/page.js # ERC721 creation & minting flow
│ │ ├── dashboard/page.js # User portfolio & analytics
│ │ └── api/pinata/sign/ # Pinata JWT signature endpoint
│ ├── components/ # UI & Header navigation components
│ ├── lib/ # Wagmi config, contract ABIs, and IPFS helpers
│ └── package.json
└── SmartContracts/ # Hardhat Smart Contract Development Workspace
├── contracts/ # Solidity source code
│ ├── Erc20Factory.sol # ERC20 Token & Factory contract
│ └── ERC721Factory.sol # ERC721 Collection & Factory contract
├── scripts/ # Deployment scripts
├── test/ # Hardhat test suites
└── hardhat.config.js
- Node.js:
v18.0.0or higher - Package Manager:
npmorpnpm - Browser Wallet: MetaMask installed
- Pinata Account: API JWT token for IPFS pinning
-
Navigate to the
frontenddirectory:cd frontend -
Install dependencies:
npm install
-
Configure environment variables by creating
.env.local:PINATA_JWT=your_pinata_jwt_secret_here
-
Start the local development server:
npm run dev
-
Open
http://localhost:3000in your browser.
-
Navigate to the
SmartContractsdirectory:cd SmartContracts -
Install dependencies:
npm install
-
Run the test suite:
npx hardhat test -
Deploy contracts to Base Mainnet (requires
PRIVATE_KEYandALCHEMY_API_KEYset in Hardhat configuration):npx hardhat run scripts/deploy.js --network base
- Non-Custodial: Contracts are owned exclusively by the deployer's address (
msg.sender). - OpenZeppelin Standard Implementations: Leverages audited OpenZeppelin ERC20 and ERC721 base implementations.
- Server-Side API Key Isolation: Pinata JWT credentials are kept strictly server-side inside Next.js API routes (
/api/pinata/sign).
This project is licensed under the MIT License.