Skip to main content
1

Navigate to Airdrops

Go to Airdrops → New Campaign in the sidebar.
2

Configure the campaign

Fill in the campaign details:
  • Title: public campaign name
  • Token: BCH or a CashToken (requires the 32-byte tokenCategory hex)
  • Total amount: full pool to distribute
  • Amount per claim: how much each wallet receives per claim
  • Max claims per address: defaults to 1
  • Start / End dates: optional claim window
  • KYC restricted: enable to require a recipient whitelist
3

Generate merkle tree (KYC only)

If KYC is enabled, upload a CSV with address,amount rows. The app calls POST /api/airdrops/:id/generate-merkle and stores merkle data in backend campaign state for eligibility checks during claim build.
4

Fund the contract

Click Fund. The app calls GET /api/airdrops/:id/funding-info to build the funding wcTransaction. Sign in your wallet.
5

Confirm funding

After your wallet broadcasts, the app calls POST /api/airdrops/:id/confirm-funding. Once the on-chain output is verified, the campaign status changes to ACTIVE.
6

Share the claim link

Copy the auto-generated claim link from the campaign detail page and share it. Recipients visit the link and claim with a single wallet signature.

Airdrop Lifecycle

PENDING → ACTIVE → PAUSED → ACTIVE → COMPLETED / CANCELLED
The campaign becomes COMPLETED when all tokens are claimed. It moves to CANCELLED when the creator cancels and withdraws remaining funds.
Current KYC enforcement is handled by backend claim validation (merkle proof checks before tx build), not by a merkle root field enforced inside AirdropCovenant bytecode.