Check in daily on-chain. 7-day streak = 10 DROP tokens.
Compatible MiniPay ✅ | Compatible Farcaster Frames ✅ | Celo + Base ✅
🔗 App live : https://dailydrop-five.vercel.app
🐙 GitHub : https://github.com/wkalidev/dailydrop
🪙 Contrat Celo : 0xd8Cc2a639a8D4e7A75a5B41C28606712e4fDf70b
🪙 Contrat Base : 0x974fB504172f2aABbecc698Ebf137202a5E4e495
- Connecte ton wallet (MetaMask, MiniPay, Rabby…)
- Clique Check-in une fois par jour
- Construis un streak de 7 jours d'affilée
- Claim 10 DROP tokens 🎁
- Recommence !
| Layer | Tech |
|---|---|
| Smart Contract | Solidity 0.8.20, OpenZeppelin ERC20 |
| Frontend | Next.js 14, TypeScript, Tailwind CSS |
| Web3 | wagmi v2, viem, RainbowKit |
| Frames | Farcaster Frames vNext |
| Déploiement | Vercel (frontend), Hardhat (contracts) |
| Chains | Celo Mainnet (42220) + Base Mainnet (8453) |
git clone https://github.com/wkalidev/dailydrop
cd dailydropnpm installcd frontend
npm install
cd ..cp frontend/.env.example frontend/.env.localRemplis .env.local avec :
PRIVATE_KEY: ta clé privée (pour déployer)NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID: obtenir sur https://cloud.walletconnect.comNEXT_PUBLIC_CDP_PROJECT_ID: obtenir sur https://portal.cdp.coinbase.com
npm run compilenpm run deploy:celonpm run deploy:baseLes adresses sont automatiquement sauvegardées dans
deployments.jsonetfrontend/.env.local
cd frontend
npm run devOuvre http://localhost:3000
- Push sur GitHub
- Connecte à Vercel : https://vercel.com/new
- Sélectionne le repo
wkalidev/dailydrop - Root Directory →
frontend - Configure les variables d'environnement :
| Variable | Description |
|---|---|
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID |
Reown/WalletConnect project ID |
NEXT_PUBLIC_CDP_PROJECT_ID |
Coinbase Developer Platform project ID |
NEXT_PUBLIC_CELO_CONTRACT_ADDRESS |
Adresse contrat Celo mainnet |
NEXT_PUBLIC_BASE_CONTRACT_ADDRESS |
Adresse contrat Base mainnet |
NEXT_PUBLIC_APP_URL |
URL de l'app déployée |
- Deploy !
L'app détecte automatiquement MiniPay via window.ethereum.isMiniPay.
Si MiniPay est détecté :
- Connexion wallet automatique
- Badge "✅ MiniPay" affiché
- Interface optimisée mobile
Pour tester dans MiniPay :
- Télécharge MiniPay sur Android
- Active le mode développeur dans les paramètres
- Entre l'URL : https://dailydrop-five.vercel.app
Le Frame est disponible à /api/frame.
Il permet aux utilisateurs Farcaster de voir leur streak et d'ouvrir l'app directement depuis Warpcast.
Pour tester : https://warpcast.com/~/developers/frames
URL du frame : https://dailydrop-five.vercel.app/api/frame
dailydrop/
├── contracts/
│ └── DailyDrop.sol # Smart contract ERC20 + check-in
├── deploy/
│ └── deploy.ts # Script de déploiement
├── hardhat.config.ts # Config Hardhat (Celo + Base)
├── package.json # Dépendances contrats
├── deployments.json # Adresses déployées (auto-généré)
└── frontend/
├── app/
│ ├── page.tsx # Page principale
│ ├── layout.tsx # Layout + metadata Farcaster
│ ├── providers.tsx # wagmi + RainbowKit providers
│ ├── globals.css # Design system complet
│ └── api/frame/
│ └── route.ts # Farcaster Frame endpoint
├── components/
│ ├── CheckInButton.tsx # Bouton check-in + claim
│ ├── StreakDisplay.tsx # Affichage streak + stats
│ └── MiniPayDetector.tsx # Auto-connect MiniPay
├── lib/
│ ├── wagmi.ts # Config wagmi
│ └── contract.ts # ABI + adresses
└── .env.example # Variables d'environnement
| Network | Adresse |
|---|---|
| Celo Mainnet | 0xd8Cc2a639a8D4e7A75a5B41C28606712e4fDf70b |
| Base Mainnet | 0x974fB504172f2aABbecc698Ebf137202a5E4e495 |
Vérifier sur :
- Celo : https://celoscan.io/address/0xd8Cc2a639a8D4e7A75a5B41C28606712e4fDf70b
- Base : https://basescan.org/address/0x974fB504172f2aABbecc698Ebf137202a5E4e495
Ce projet participe au programme Celo Proof of Ship.
- ✅ Build for MiniPay : hook
isMiniPaydétecté, connexion automatique - ✅ Deploy on Celo Mainnet : contrat
0xd8Cc2a639a8D4e7A75a5B41C28606712e4fDf70b - ✅ Deploy on Base Mainnet : contrat
0x974fB504172f2aABbecc698Ebf137202a5E4e495 - ✅ App live : https://dailydrop-five.vercel.app
- ✅ Farcaster Frame : https://dailydrop-five.vercel.app/api/frame
MIT