Une Mini App Base pour gagner des USDC quotidiennement ! Style cyberpunk/neon avec intégration complète sur Base Network.
- ✅ Daily Lucky Draw - Loterie quotidienne avec USDC
- ✅ Base Mini App - Intégration Farcaster + Base App
- ✅ Gasless UX - Paymaster pour sponsoriser le gas
- ✅ Smart Contract - Contrat Solidity sécurisé
- ✅ Cyberpunk Design - Neon pink/cyan aesthetic
- ✅ OnchainKit - Composants Web3 modernes
cd remixcuisine-miniapp
npm installCopie .env.example vers .env.local et remplis les variables:
cp .env.example .env.localVariables requises:
NEXT_PUBLIC_ONCHAINKIT_PROJECT_ID- De https://portal.cdp.coinbase.com/NEXT_PUBLIC_CDP_API_KEY- Pour PaymasterNEXT_PUBLIC_LUCKY_DRAW_CONTRACT- Après déploiement du contrat
npm run devOuvre http://localhost:3000
-
Va sur https://remix.ethereum.org/
-
Crée un nouveau fichier
LuckyDraw.sol -
Copie le contrat depuis
src/contracts/LuckyDraw.sol -
Compile avec Solidity 0.8.20+
-
Déploie sur Base Mainnet ou Base Sepolia:
- Constructor args:
_usdc:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913(Base Mainnet)_daoTreasury: Ton wallet address
- Constructor args:
-
Copie l'adresse du contrat déployé dans
.env.local
# Avec Hardhat
npx hardhat run scripts/deploy.js --network base
# Avec Foundry
forge create src/contracts/LuckyDraw.sol:LuckyDraw \
--rpc-url https://mainnet.base.org \
--private-key $PRIVATE_KEY \
--constructor-args 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 $YOUR_TREASURYOu manuellement:
npm run build
vercel --prodDans Vercel Dashboard → Settings → Environment Variables, ajoute:
NEXT_PUBLIC_ONCHAINKIT_PROJECT_IDNEXT_PUBLIC_CDP_API_KEYNEXT_PUBLIC_LUCKY_DRAW_CONTRACT
- Va dans Vercel Dashboard
- Settings → Deployment Protection
- Toggle "Vercel Authentication" à OFF
- Save
Édite public/.well-known/farcaster.json:
- Remplace toutes les URL par ton domaine Vercel
- Garde la structure existante
- Va sur https://www.base.dev/
- Entre ton URL:
[https://remixcuisine-dao.vercel.app/] - Click "Submit."
- Clique "Verify" et suis les instructions
- Copie l'objet
accountAssociationgénéré - Colle-le dans
farcaster.json - Redéploie sur Vercel
Teste que ton manifeste est accessible:
https://remixcuisine-dao.vercel.app/.well-known/farcaster.json
Tu devrais voir le JSON complet.
Crée ces images dans ton style cyberpunk/néon:
- Logo RemixCuisine
- Background transparent
- Style: Neon pink/cyan
- Écran de chargement
- Texte: "RemixCuisine Lucky Draw"
- Background: Cyberpunk grid
- Preview dans le feed
- Include: Logo + "Win USDC Daily"
screenshot1.png- Main draw interfacescreenshot2.png- Winners list
Place tous les assets dans /public/
https://base.app/frame/remixcuisine-dao.vercel.app
Cast ton URL sur Farcaster et elle devrait render comme une Mini App
// Entre le draw (coûte 0.1 USDC)
enterDraw()
// View functions
getCurrentPrizePool() → uint256
getTotalEntries() → uint256// Sélectionne le winner du jour
selectWinner()
// Emergency
emergencyWithdraw()Pour production, utilise Chainlink VRF:
- Installe
@chainlink/contracts. - Implement
VRFConsumerBaseV2. - Configure VRF Subscription sur Base
- Update
selectWinner()pour utiliser VRF
Documentation: https://docs.chain.link/vrf/v2/subscription/examples/get-a-random-number
- ✅ ReentrancyGuard sur toutes les fonctions critiques
- ✅ Ownable pour admin functions
- ✅ Input validation
⚠️ Randomisation à améliorer avec Chainlink VRF- ✅ Emergency withdrawal pour l'owner
// Dans src/app/layout.tsx
{process.env.NODE_ENV === 'development' && (
<Script src="https://cdn.jsdelivr.net/npm/eruda" />
)}- Basic Lucky Draw
- Base Mini App Integration
- Cyberpunk Design
- Chainlink VRF Integration
- Multi-prize tiers
- NFT rewards pour winners
- Recipe submission system
- DAO governance
- Mobile push notifications
- Framework: Next.js 15 + TypeScript
- Styling: Tailwind CSS + Custom Neon Theme
- Web3: Wagmi + Viem
- UI: OnchainKit (Coinbase)
- Smart Contract: Solidity 0.8.20
- Network: Base (L2)
- Token: USDC
Des questions? Trouve-moi sur:
- Farcaster: @willywarrior
- Twitter/X: @willycodexwar
- Email: (mtech9028@gmail.com)
MIT
Built with 💜 by (wkalidev)zcodebase
Bon appétit et bonne chance! 🍕🎲