https://github.com/wkalidev/dailydrop
The DailyDrop, Check-in daily on-chain. Build a 7-day streak, earn DROP tokens. Built on Celo & Base.
https://github.com/wkalidev/dailydrop
base blockchain celo minipay web3
Last synced: about 1 month ago
JSON representation
The DailyDrop, Check-in daily on-chain. Build a 7-day streak, earn DROP tokens. Built on Celo & Base.
- Host: GitHub
- URL: https://github.com/wkalidev/dailydrop
- Owner: wkalidev
- Created: 2026-04-19T23:28:45.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-27T14:55:24.000Z (about 2 months ago)
- Last Synced: 2026-04-27T16:25:10.491Z (about 2 months ago)
- Topics: base, blockchain, celo, minipay, web3
- Language: TypeScript
- Homepage: https://dailydrop-five.vercel.app
- Size: 330 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DailyDrop đ„
> Check in daily on-chain. 7-day streak = 10 DROP tokens.
**Compatible MiniPay â
| Compatible Farcaster Frames â
| Celo + Base â
**
## Démo
đ App live : https://dailydrop-five.vercel.app
đ GitHub : https://github.com/wkalidev/dailydrop
đȘ Contrat Celo : `0xd8Cc2a639a8D4e7A75a5B41C28606712e4fDf70b`
đȘ Contrat Base : `0x974fB504172f2aABbecc698Ebf137202a5E4e495`
---
## Comment ça marche
1. Connecte ton wallet (MetaMask, MiniPay, RabbyâŠ)
2. Clique **Check-in** une fois par jour
3. Construis un streak de 7 jours d'affilée
4. Claim **10 DROP tokens** đ
5. Recommence !
---
## Stack
| 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) |
---
## Installation
### 1. Cloner le repo
```bash
git clone https://github.com/wkalidev/dailydrop
cd dailydrop
```
### 2. Installer les dépendances des contrats
```bash
npm install
```
### 3. Installer les dépendances du frontend
```bash
cd frontend
npm install
cd ..
```
### 4. Configurer les variables d'environnement
```bash
cp frontend/.env.example frontend/.env.local
```
Remplis `.env.local` avec :
- `PRIVATE_KEY` : ta clé privée (pour déployer)
- `NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID` : obtenir sur https://cloud.walletconnect.com
- `NEXT_PUBLIC_CDP_PROJECT_ID` : obtenir sur https://portal.cdp.coinbase.com
---
## Déploiement des contrats
### Compiler
```bash
npm run compile
```
### DĂ©ployer sur Celo Mainnet â
```bash
npm run deploy:celo
```
### DĂ©ployer sur Base Mainnet â
```bash
npm run deploy:base
```
> Les adresses sont automatiquement sauvegardées dans `deployments.json` et `frontend/.env.local`
---
## Lancer le frontend
```bash
cd frontend
npm run dev
```
Ouvre http://localhost:3000
---
## Déployer sur Vercel
1. Push sur GitHub
2. Connecte Ă Vercel : https://vercel.com/new
3. Sélectionne le repo `wkalidev/dailydrop`
4. Root Directory â `frontend`
5. 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 |
6. Deploy !
---
## MiniPay
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 :
1. Télécharge MiniPay sur Android
2. Active le mode développeur dans les paramÚtres
3. Entre l'URL : https://dailydrop-five.vercel.app
---
## Farcaster Frame
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
---
## Structure du projet
```
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
```
---
## Contrats déployés
| Network | Adresse |
|---|---|
| Celo Mainnet | `0xd8Cc2a639a8D4e7A75a5B41C28606712e4fDf70b` |
| Base Mainnet | `0x974fB504172f2aABbecc698Ebf137202a5E4e495` |
Vérifier sur :
- Celo : https://celoscan.io/address/0xd8Cc2a639a8D4e7A75a5B41C28606712e4fDf70b
- Base : https://basescan.org/address/0x974fB504172f2aABbecc698Ebf137202a5E4e495
---
## Proof of Ship â Celo (Avril 2026)
Ce projet participe au programme **Celo Proof of Ship**.
- â
Build for MiniPay : hook `isMiniPay` dé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
---
## Licence
MIT