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.