Inspiration
🥥, Colombia, the self-service user experience from Snapshot, Guild.xyz, Galxe empowering the user to create flexible strategies, gating criteria, campaigns.
What it does
This project streamlines the process of creating a Merkle drop. The potential recipient opens the frontend, and can see pending, dispersed airdrops pointing to them. The donor can deploy airdrops in a simple way, by choosing a token, an amount, and a strategy. A "strategy" is composed of a function that returns eligible addresses and weights. The application will take care of calculating how much is awarded to each address, and deploy the airdrop through one function call.
How we built it
Cocodrop uses a smart contract, TheGraph, and a frontend. Strategies are chain independent, but the airdrop contract should be deployed on each chain, so contract/subgraph pairs are deployed for a bunch of relevant EVM compatible chains. The Merkle proofs are uploaded to IPFS, with the URI available as an event. The frontend is available through an ENS domain, with the code also available through IPFS. Strategies can be calculated in any arbitrary way, but we had limited time, so we chose a series of interesting criteria for choosing airdrops:
- being registered in Proof of Humanity,
- holding a particular POAP such as the DevCon attendee POAP,
- being a follower of someone on Lens Protocol,
- holding Sismo zk-badges: a privacy-preserving Proof of Humanity badge.
Challenges we ran into
The main technical hurdle was trying to build a strategy for Galxe campaigns. Their subgraph is missing many recent campaigns, so it was likely not updated to point to the latest smart contracts. Galxe also exposes its own GraphQL endpoint but is protected by CORS which prevents us from querying from the browser. There was an attempt to query that endpoint using a Netlify serverless function (which could bypass CORS) but we've run out of time.
We looked a bit into WorldCoin as another strategy but it was not clear how to query with their set of registered users and didn't have enough time to investigate.
During the building process there were early disagreements on the branding. Looking back we are glad of the choices we made there. On the product side there were tons of open questions when we started on Saturday morning. There were a few coordination failures during the process but nothing unexpected for a hackathon.
Accomplishments that we're proud of
The branding and the strategies we were able to come up with from scratch within barely a day. We started Saturday morning knowing only that we wanted to build a cool airdrop solution that integrated with Proof of Humanity. In the end we ended with an easy no-code solution to create an airdrop for different strategies and claim it.
What we learned
A cool branding can make the project more fun to work on. We could have done many things ahead of time, before the official start of the hackathon: the product ideation stage, getting familiar with new technologies (such as the one from the sponsors).
What's next for Cocodrop
More strategies! Galxe, Kleoverse, Gitcoin donors/grantees... Better UX and customizations of the strategies: preview of a selected POAP, Lens followers More EVM chains! Arbitrum...
And airdrops coming to real humans and other users actively interacting with the ecosystem!
Links
Website 🥥
Source code
Deployments
- GnosisChain: contract, subgraph
- Optimism contract, subgraph
- Mumbai: contract, subgraph
- Goerli: contract, subgraph
Log in or sign up for Devpost to join the conversation.