Search projects, hackathons, sponsors and tech

    ← All projects

    About

    The problem it solves N-LABS95 is a simple launchpad for on-chain art on Base — designed for creators first. A central home & marketing hub for non-technical artists: introduce yourself, show your work, and launch new collections/experiments without touching code. You bring the art, we handle the tech (minting, metadata, hosting, distribution). Collector-friendly UX: clear price/counter from chain, instant preview, Base App smart-wallet compatible. Goal: make art on Base cohesive, accessible, and effortless—a true launchpad and discovery surface for creators and collectors. The First Experiment (live) Experiment → Create → Collect: load a reference NFT, adjust two sliders, preview on canvas, and mint in one click. Clean, reproducible mints: deterministic generator (no AI) uses color signals from the referenced NFT; traits (Collection, DNA Frequency, Gene Flow, Source Token) are stored on IPFS JSON. ![image](https://assets.devfolio.co/content/566e50c573f84c6ea92c5bdb4a7b0524/da6626b4-b2d7-4405-9609-a1e84ffa3628.png) ![image](https://assets.devfolio.co/content/566e50c573f84c6ea92c5bdb4a7b0524/2db705be-5a66-4d26-b872-7b83636e7d0d.png) ![image](https://assets.devfolio.co/content/566e50c573f84c6ea92c5bdb4a7b0524/815f9f05-0110-4982-a5a0-3ef3498c0b24.png) Smart Contract Address(es) NLABS95DNA (ERC-721, Base Mainnet 8453) 0x5070afb57828c22cFE4B236F20fBFCa0812bb9Ea Key functions: mint(string tokenURI_, address sourceCollection, uint256 sourceTokenId) payable mintPrice() view -> uint256 totalMinted() view -> uint256 hasBeenUsed(address collection, uint256 tokenId) view -> bool Other Onchain Proof Verified contract on BaseScan (Solidity v0.8.30, MIT, optimizer runs 200). Example mint tx: 0xd4eae90c5f8940ef04458e018947bbdbd6cc268a079b39174bf33caf9626bfe0 (shows as internal transaction; token minted, ETH deducted, totalMinted increments). Collection live: first tokens visible; attributes render correctly from IPFS JSON (Collection, DNA Frequency, Gene Flow, Source Token). Read checks: paused() = false, mintPrice() = 0.002 ETH, and totalMinted() > 0.

    How it's made

    Challenges we ran into Smart-wallet quirks (AA) / “Insufficient funds” / internal JSON-RPC errors Early mints from the Base App threw errors despite sufficient balance. Fix: robust chain switch/add, always read mintPrice() and pass { value }, wait on receipts, surface friendly errors. Now mints confirm reliably (often shown as internal tx on BaseScan). Traits not showing on marketplaces Initially only the image was pinned, so attributes didn’t display. Fix: server uploads image first, then pins a merged metadata JSON (with attributes/external_url). Traits now appear correctly. Preview quality vs. upload size 2048² looked great but caused upload timeouts. Fix: settled on 1600×1600 JPEG ~0.92 for a solid balance of detail and stability. Contract verification Single-file verify on BaseScan (Solidity 0.8.30, MIT, optimizer 200) including pinned OZ snippets to match bytecode/ABI exactly.