Search projects, hackathons, sponsors and tech

    ← All projects

    Builder Quest

    Grow, Build, and Win Together on Base

    About

    The problem it solves Builder Quest: Transforming Builder Communities The Problem Builder Quest Solves Traditional Hackathons & Builder Challenges Are Broken Current Pain Points: Centralized & Opaque: Winners chosen behind closed doors with no transparency High Barriers: Expensive entry fees, geographic limitations, complex submission processes Poor Discovery: Great projects get buried, builders struggle to find relevant challenges Delayed Rewards: Weeks/months to receive prizes, often requiring banking details and paperwork One-Size-Fits-All: Large hackathons don't serve niche communities or specific skill levels Limited Engagement: Submit once, wait, never interact with the community again Web2 Freelance Platforms Fall Short for Builders Race to the Bottom: Bidding wars drive down quality and compensation Trust Issues: No guaranteed payment, dispute resolution favors platforms Generic Work: Cookie-cutter projects, no room for innovation or learning Platform Lock-in: Your reputation and network tied to a single platform How Base Builder Quest Changes Everything Plant Challenges, Not Just Bounties Anyone can create: Set your prize, deadline, and requirements in minutes Instant Escrow: ETH locked on Base blockchain - no payment delays or disputes Perfect for: Learning challenges, prototype development, community building Transparent & Trustless by Design Onchain Transparency: Every challenge, submission, and winner selection recorded on Base Smart Contract Escrow: Prizes automatically held and distributed - no middlemen Farcaster Integration: One-tap sharing brings authentic Web3 community engagement Built for Builders, By Builders MiniKit Native: Seamless mobile experience in your favorite Web3 apps Low Barriers: No KYC, no lengthy profiles - just connect wallet and start building Community Focused: Projects get discovered by engaged builders, not algorithm optimization Real-World Use Cases For Challenge Creators Prototype Development: "Build a Base-native mobile wallet in 48 hours - 0.1 ETH prize" Educational Content: "Create a tutorial series on smart contract security - 0.05 ETH per episode" Community Building: "Design our DAO's new logo and branding - 0.2 ETH" Technical Challenges: "Solve this DeFi composability puzzle - 0.5 ETH to first working solution" For Builders Skill Development: Practice new frameworks while earning Portfolio Building: Create showcase projects with real incentives Network Growth: Connect with other builders and potential collaborators Quick Wins: Earn ETH for smaller contributions between major projects For Projects & DAOs Talent Discovery: Find builders who can actually ship Feature Development: Crowdsource specific features or improvements Community Engagement: Keep your builder community active with regular challenges Quality Control: See working prototypes before committing to larger contracts Inspired by Base Builder Quest (BBQ) Base Builder Quest was born from the success and limitations of the original BBQ: What BBQ Did Right Brought thousands of builders to Base ecosystem Created genuine excitement around building Onchain rewards with transparent criteria How Base Builder Quest Improves the Model Continuous vs. Seasonal: Challenges running year-round, not just during events Community-Driven: Anyone can create challenges, not just official organizers Granular Rewards: From 0.001 ETH micro-challenges to 1+ ETH major builds Better Discovery: Rich filtering and search to find challenges matching your skills Mobile-First: Built for the MiniKit ecosystem where builders actually live Why This Matters Now The Perfect Storm for Builder Communities Base Momentum: Fastest-growing L2 with builder-friendly culture MiniKit Adoption: Native mobile Web3 experiences becoming mainstream Creator Economy: Shift from employment to project-based work AI Amplification: Builders can ship faster, taking on more diverse challenges Making Web3 Building Accessible Base Builder Quest removes the complexity barrier - no need to understand complex DeFi protocols or navigate confusing interfaces. Just plant a challenge, build, earn, repeat. Base Builder Quest isn't just another bounty platform - it's where the next generation of Web3 builders will grow together. Start exploring challenges at Base Builder Quest, or plant your first challenge today. Smart Contract Address(es) testnet -0x401b7123A40B86F7Cfc0A29C43A481DFe971c3Ac

    How it's made

    Challenges we ran into Major Technical Hurdles 1. MiniKit Transaction Integration Hell 🔥 The Problem: Initially used the old window.ethereum approach for quest creation, which completely broke the MiniKit wallet experience. Users would click "Create Quest" and... nothing. No wallet popup, no transaction, just broken silence. // ❌ BROKEN - Old approach const txResp = await (window as any).ethereum?.request?.({ method: 'eth_sendTransaction', params: [{ /* transaction data */ }] }); The Debugging Journey: - Console showed correct ETH amounts and transaction data - Transaction was properly encoded with quest metadata - But MiniKit wasn't detecting the transaction request at all The Solution: Completely rewrote transaction handling using OnchainKit's Transaction components, which are specifically designed for MiniKit integration: // ✅ FIXED - OnchainKit approach <Transaction calls={transactionCalls} onSuccess={handleTransactionSuccess} onError={handleTransactionError} > <TransactionButton className="btn btn-primary w-full" /> <TransactionStatus> <TransactionStatusAction /> <TransactionStatusLabel /> </TransactionStatus> </Transaction> Lesson Learned: Don't fight the framework - embrace MiniKit's native patterns. --- 2. BigInt Precision Loss Horror 💰 The Problem: Quest prizes would display as "0.0000 ETH" even when users deposited real amounts like 0.00001 ETH. The Investigation: // ❌ WRONG - Converting BigInt to Number during render <span>{Number(prize) / 1e18} ETH</span> // JavaScript Number precision loss! The Root Cause: JavaScript's Number type can't safely represent large integers. Converting BigInt to Number for calculations was losing precision for small ETH amounts. The Solution: // ✅ FIXED - Pre-compute ETH conversion and store as number const prizeEth = Number(prize) / 1e18; // Do conversion once // Then use prizeEth consistently throughout component <span>{prizeEth.toFixed(5)} ETH</span> Lesson Learned: Handle BigInt conversions carefully and consistently - do the conversion once and reuse the result. --- 4. IPFS Metadata Loading Race Conditions 🏃‍♂️ The Problem: Quest titles would randomly show as "Quest #1" instead of actual titles like "Build a Mobile Wallet". The data was there, but timing was everything. The Debugging Process: - Smart contract calls worked fine - IPFS URLs were correct - Metadata existed on IPFS - But sometimes title loaded, sometimes it didn't The Root Cause: React component was rendering before IPFS metadata finished loading, and there was no proper loading state management. The Solution: // ✅ FIXED - Proper async state management const [metadata, setMetadata] = useState<any>(null); useEffect(() => { // Fetch quest data first, then metadata const fetchData = async () => { const questData = await fetchQuestFromContract(id); setQuest(questData); if (questData.cid) { const metadataResponse = await fetch(ipfsCidUrl(questData.cid)); if (metadataResponse.ok) { const meta = await metadataResponse.json(); setMetadata(meta); } } }; fetchData(); }, [id]); // Safe rendering with fallbacks const title = metadata?.title || `Quest #${id}`; Lesson Learned: Always plan for async operations and provide meaningful fallbacks. ---