
FireballDrop
Farcaster giveaways with Chainlink-randomness.
Demo
About
The problem it solves Content creators and community builders often struggle to engage their audience with onchain experiences that are both fun and fair. Traditional airdrops and giveaways can be: ❌ Susceptible to bots or sybil attacks ❌ Difficult to prove fairness of selection ❌ Boring or purely transactional ❌ Hard to integrate into social platforms like Farcaster This app solves that by enabling creators to easily launch interactive, verifiably fair drops directly within Farcaster. Users join through a Plinko-style interface, and winners are selected using Chainlink VRF v2.5 (Direct Funding), providing: ✅ Tamper-proof randomness ✅ Fun, game-like user experience ✅ Frictionless social sharing and participation ✅ A new way for creators to reward genuine engagement Whether you're running a raffle, NFT drop, community lottery, or token giveaway — this app makes it safer, more fun, and transparently fair.
How it's made
Challenges we ran into One of the biggest challenges was setting up serverless functions on Vercel to support dynamic meta tags for each drop. Since this is a Farcaster mini app, each drop needed a unique frame preview — which meant injecting per-drop metadata (og:image, fc:frame, etc.) at request time. However, Vercel's default behavior doesn't make this straightforward: ❌ Static rendering doesn't allow per-request headers/meta ❌ Middleware couldn't reliably inject HTML tags ❌ Some workarounds broke the Farcaster crawler compatibility It took several days of trial and error, experimenting with edge functions, Vercel rewrites, and SSR routes. Eventually, I solved it by using a Vercel Serverless Function that: ✅ Dynamically fetches the drop data ✅ Injects the correct meta tags into a custom HTML response ✅ Serves that as the page head for Farcaster crawlers This unblocked the ability to generate frame-enabled, shareable links per drop, fully integrated with the Farcaster ecosystem.