tap to start
← → or a d to move
for devs

airdrop protocol

open-source solana airdrop toolkit. csv in → claim site out.

alon
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
airdrop protocol · 10m diy · 2 weeks

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
open repo on github →