Making automated DCA accessible to everyone as a public good.
- Fund wallet with USDC via Coinbase Apple Pay
- Start DCA - Balance is divided over 52 weeks
- First swap executes immediately, then weekly on Mondays at 12pm UTC
- Add USDC anytime - Weekly amount auto-adjusts
Weekly Amount: currentBalance / remainingWeeks
User-authorized server keys enable gasless automated swaps without requiring signatures for each transaction:
- User logs in and authorizes a session signer
- Server stores authorization key (
PRIVY_AUTHORIZATION_PRIVATE_KEY) - Cron job uses this key to execute swaps on user's behalf
- All transactions are gas-sponsored by Privy
Result: True automation - no approval needed for weekly swaps.
Each swap routes through 0x Protocol for best execution:
- Cron fetches quote for
USDC → ETHswap - 0x aggregates liquidity across all Base DEXes
- Returns optimized route with best price
- Executes via 0x's
AllowanceHoldercontract
Result: Best available price across Uniswap, Curve, and other DEXes.
- Vercel KV - Redis storage for DCA schedules
- Vercel Cron - Weekly execution (Mondays 12pm UTC)
- Base L2 - Low fees, fast finality
Go to Vercel project → Storage → Create Database → Select "KV"
NEXT_PUBLIC_PRIVY_APP_ID=your_privy_app_id
PRIVY_APP_SECRET=your_privy_app_secret
PRIVY_AUTHORIZATION_PRIVATE_KEY=your_privy_auth_key
ZEROX_API_KEY=your_0x_api_key
CRON_SECRET=$(openssl rand -base64 32)
Vercel KV variables are auto-added when you create the database.
npm install
npm run build
Deploy to Vercel and the cron job will automatically run weekly.
- Next.js 16 - React framework
- Privy - Embedded wallets + session signers
- 0x Protocol - DEX aggregation
- Vercel - Hosting + cron + KV storage
- Base - L2 network
- viem - Ethereum interactions
This is a public good project. Contributions welcome!
MIT