What is an Airdrop ?

In Dropsy, an Airdrop is an on-chain representation of that concept — managed by a controller and enforced by secure rules. It's a verifiable and permissioned token distribution system on Solana.

  • Fully on-chain logic, including claim verification
  • Tied to a specific token mint and controller
  • Tracks claimed wallets via a ClaimMap or bitmap
  • Supports Merkle proofs for scalable validation
  • Compatible with both SPL Token and Token-2022 standards

PDA Derivation

In Dropsy, each airdrop is stored as a Program Derived Address (PDA) uniquely tied to the creator's wallet address and token mint. This ensures:

  • Each airdrop is deterministically addressable on-chain
  • The same wallet can create multiple airdrops for different mints
Manual Derivation
import { getProgramDerivedAddress, getAddressEncoder } from "@solana/kit";
import { DROPSY_PROGRAM_ADDRESS } from "@dropsy/airdrop";

const seeds = [
  Buffer.from("airdrop"),
  getAddressEncoder().encode(mint),
  getAddressEncoder().encode(authority),
];

const [airdropPda, bump] = await getProgramDerivedAddress({
  seeds,
  programAddress: DROPSY_PROGRAM_ADDRESS,
});

This matches the SDK's internal derivation logic using the seed pattern:
"airdrop" + mint_address + authority_address

Recommended: SDK Utility
import { getAirdropDerivedAddress } from "@dropsy/airdrop";

const [airdropPda, airdropBump] = await getAirdropDerivedAddress(
  authority, // creator's wallet address
  mint       // token mint address
);

The helper method handles seed formatting and program address internally.

Lifecycle

A typical airdrop progresses through these stages:

  • Initialization with metadata and Merkle root
  • Token deposit into the vault address
  • Claiming by users with valid proofs
  • Closing after the end time to recover remaining funds

✅ Think of an airdrop as a self-contained smart distribution campaign — fully verifiable on-chain and powered by Dropsy.