nav.brand
docs.title/Airdrop / Claim

Airdrop / Claim

Build the list in the browser, ship a Merkle claim page

docs.viewTemplate

docs.h.overview

A gas-light airdrop. Drag a recipients CSV into the setup wizard, preview it paginated with totals, and generate the Merkle root + claims file in the browser — no CLI. Recipients check eligibility and claim with one click; only they pay gas.

Airdrop / Claim turns a list of addresses + amounts into a live claim page. In the setup wizard you drop in a CSV, review it paginated with running totals, and the Merkle root and per-recipient claims file are generated entirely in the browser — then you deploy the distributor and fund it (prefilled with the airdrop total) from your wallet.

The claim page connects a wallet, instantly shows whether it's eligible and for how much, and claims in one click. The MerkleDistributor verifies the proof on-chain and records the claim, so each wallet can claim exactly once.

You fund the distributor with the total tokens once; each recipient pays the gas for their own claim. Everything on the page — title, token, symbol — is env-driven and brandable.

docs.h.included

  • Next.js app (App Router, TypeScript, Tailwind)
  • MerkleDistributor.sol + Hardhat
  • In-browser Merkle list builder + claims.json generation (CLI script also included)
  • Setup wizard with in-browser deploy and a fund step
  • Dockerfile + docker-compose, README

docs.h.contracts

  • MerkleDistributor.sol — a gas-light airdrop: recipients prove their (address, amount) against a Merkle root and claim exactly once; it tracks the claimed count and remaining balance, and the owner can sweep any leftovers after the campaign (OpenZeppelin SafeERC20 + MerkleProof).

docs.h.stack

docs.stackLine

docs.chainsLine

docs.h.quickstart

docs.quickstartP

unzip airdrop-claim.zip && cd airdrop-claim
npm install
npm run dev

docs.quickstartUrl

docs.h.configure

docs.configureP

  1. docs.wizard.1
  2. docs.wizard.2
  3. docs.wizard.3
  4. docs.wizard.4
  5. docs.wizard.5
Tip · docs.configureTip

docs.configureP2

docs.h.customize

docs.h.branding

docs.brandingP

docs.brandingP2

docs.h.languages

docs.languagesP

docs.h.editing

docs.editingP

docs.h.configRef

docs.configRefP

  • docs.configRef.1
  • docs.configRef.2
Tip · docs.configRefTip

docs.h.deployContracts

docs.deployContractsP

# compile + copy artifacts the app/wizard use
npm run compile

# deploy to the network in your .env (RPC_URL + DEPLOYER_PRIVATE_KEY)
npm run deploy

docs.deployContractsP2

docs.h.deployApp

docs.h.vercel

  1. docs.vercel.1
  2. docs.vercel.2
  3. docs.vercel.3

docs.h.docker

docs.dockerP

# build + run; with no .env it opens the setup wizard
docker compose up --build

# once you have a .env, pass it in:
docker run --env-file .env -p 3006:3000 airdrop-claim

docs.dockerP2

docs.h.vps

docs.vpsP

npm install
npm run build
npm run start   # serves the production build

docs.h.checklist

  • docs.checklist.1
  • docs.checklist.2
  • docs.checklist.3
  • docs.checklist.4
  • docs.checklist.5

docs.h.support

docs.supportP