devs
github ↗
for devs
airdrop protocol
open-source solana airdrop toolkit. csv in → claim site out.
the origin
alon couldn't ship the $pump airdrop
the $pump airdrop went sideways. claims broke, allocations were messy, the whole thing shouldn't have been that hard. so we built airdrop protocol — the toolkit alon needed but didn't have. now any team can ship a real solana airdrop without losing two weeks to plumbing.
"
never let a friend launch a token without merkle proofs.
~10min
from csv to live claim site
diy vs airdrop protocol
×
diy airdrop
- write merkle tree code
- deploy proof api
- handle wallet adapters
- design + build claim ui
- support edge cases for weeks
- maintain backend forever
~ 2 weeks · ongoing
✓
airdrop protocol
- npx airdrop-protocol snapshot
- static json (no backend)
- built-in wallet adapter
- react widget — drop in
- edge cases handled
- nothing to maintain
~ 1 afternoon · zero ops
how it works
📄
csv
address,amount
→
🛠
cli build
jupiter merkle
→
📁
static json
root + proofs
→
🌐
host
vercel · cf · arweave
→
💸
claim
via react widget
the stack
🧩
react widget
drop into your app · themable
your users
⚙️
sdk
claim logic · framework-agnostic
12kb · 0 deps
🛠
cli
build merkle from csv
one-shot
📁
static json
root + per-wallet proofs
host anywhere
why this exists
⏱
time-killer
airdrops eat 2 weeks of eng time per launch. that's a feature you didn't ship.
🔁
solved problem
jupiter, jito, wen — all use the same merkle pattern. no reason to rewrite it.
🪶
no infra
proofs are static files. host on vercel, cloudflare, github pages, arweave.
🧪
battle-tested
jupiter leaf encoding · audited merkle-distributor program · production-grade.
three pieces
1
cli
npx airdrop-protocol --help
2
sdk
@airdropprotocol/sdk
3
widget
<AirdropClaim proofsUrl=… />
12kb
sdk gzipped
0
runtime deps
0
backend
mit
license