Builder Quest
Grow, Build, and Win Together on Base
Created on 14th July 2025
•
Builder Quest
Grow, Build, and Win Together on Base
The problem Builder Quest 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.
Challenges I ran into
Major Technical Hurdles
- 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.
- 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.
- 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.
Smart Contract Address(es)
testnet -0x401b7123A40B86F7Cfc0A29C43A481DFe971c3Ac
Tracks Applied (1)
Top 5 New Mini Apps
Technologies used
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.
