Community-driven hackathon crowdfunding platform on Avalanche
BuildBack is a prediction market meets crowdfunding platform where supporters fund builders directly while predicting hackathon winners. It's less gambling, more community-driven funding for innovation.
- Builders Register - Project teams submit their hackathon projects
- Admin Approves - Hackathon organizers review and approve submissions
- Community Supports - Users fund projects with USDC or AVAX
- 💰 10% goes directly to the project creator (instant funding)
- 🏆 88% goes to the prize pool (for supporters of winners)
- 🔧 2% platform fee (helps maintain BuildBack)
- Admin Declares Winners - After the hackathon, organizers settle results
- Supporters Claim Rewards - If you supported winning projects, claim your share!
- Dual Token Support: Back projects with USDC or AVAX
- Multiple Winners: Prize pool can be split across multiple projects
- Direct Developer Funding: 10% of contributions go straight to builders
- Admin Controlled Phases: Manual control over registration, backing, and settlement
- Emergency Refunds: Built-in safety mechanism if hackathon is cancelled
- Transparent & On-Chain: All transactions on Avalanche Fuji testnet
- BuildBack.sol - Main hackathon contract with dual-token rewards
- BuildBackFactory.sol - Factory for creating multiple hackathon instances
- Built with Solidity 0.8.20 + OpenZeppelin 5.0.0
- React 18 + Vite - Modern, fast development
- Wagmi v2 + RainbowKit - Web3 wallet integration
- Shadcn UI + Tailwind - Beautiful, accessible components
- Framer Motion - Smooth animations
- Factory Address:
0x3B2510eB4F0208eF58d045F7Bcd16669842f9fBa - USDC Address:
0x5425890298aed601595a70AB815c96711a31Bc65 - Chain ID:
43113
Node.js v18+
pnpm or npmcd contract
npm install
npx hardhat test # Run tests
npx hardhat compile # Compile contracts
npx hardhat run scripts/deploy-factory.ts --network fuji # Deploycd frontend
pnpm install
pnpm dev # Start dev server (localhost:8080)
pnpm build # Build for production- Create Hackathon - Deploy via factory or use existing
- Manage Projects:
- Approve submitted projects
- Control registration phases
- Enable/disable backing
- Settle Event - Declare winners with percentage splits
- Withdraw Fees - Claim 2% platform fee after settlement
- Register Project - Submit name + description
- Wait for Approval - Admin reviews your submission
- Receive Funding - Get 10% of all contributions instantly!
- Build - Create your awesome project
- Browse Hackathons - View active events
- Support Projects - Fund projects you believe in (USDC or AVAX)
- 10% goes to builder
- 88% to prize pool
- Claim Rewards - If your projects win, claim your share!
All 26 tests passing ✅
cd contract
npx hardhat test
# Output:
# ✓ Project registration
# ✓ USDC backing with developer share
# ✓ AVAX backing with developer share
# ✓ Multiple winners settlement
# ✓ Reward calculations
# ✓ Emergency refunds
# ✓ Fee withdrawals- ReentrancyGuard - Prevents reentrancy attacks
- Pausable - Emergency stop mechanism
- Ownable - Admin-only functions
- SafeERC20 - Safe token transfers
- Input Validation - Strict checks on all parameters
When you support a project with 100 USDC:
→ 10 USDC → Project Creator (instant)
→ 88 USDC → Prize Pool (for winners' supporters)
→ 2 USDC → Platform Fee
If the project wins 50% of the prize pool:
- All supporters of that project split their share proportionally
- You can claim your rewards after settlement
Frontend: https://buildback-qln7uzbtw-ved-mohans-projects-486ed2df.vercel.app
Testnet: Avalanche Fuji
- Get testnet AVAX: https://core.app/tools/testnet-faucet/
- Get testnet USDC: https://core.app/tools/testnet-faucet/?token=usdc
registerProject(name, description)- Submit your projectbackProject(projectId, amount)- Support with USDCbackProjectWithAVAX(projectId)- Support with AVAXclaimReward()- Claim winnings if you backed winnersemergencyRefund()- Get funds back if hackathon cancelled
approveProject(projectId)- Approve submitted projectsenableBacking()/disableBacking()- Control backing phasecloseRegistration()- Close project submissionssettleEvent(Winner[])- Declare winners with %splitswithdrawFees()- Claim 2% platform feespause()/unpause()- Emergency controls
Smart Contracts:
- Solidity 0.8.20
- Hardhat
- OpenZeppelin Contracts 5.0.0
- TypeScript
Frontend:
- React 18
- Vite 5.4
- Wagmi v2
- RainbowKit 2.2
- Shadcn UI
- Tailwind CSS
- Framer Motion
Blockchain:
- Avalanche Fuji Testnet
- USDC (6 decimals)
- Native AVAX (18 decimals)
MIT
Contributions welcome! Please feel free to submit a Pull Request.
- GitHub: @ivedmohan
- Repository: BuildBack
Built with ❤️ for the builder community