Airdrop Example

This example demonstrates V2 contract integration using the Airdrop contract, which supports both E-Passport and EU ID Card verification with registration/claim phases and Merkle tree token distribution.

Airdrop-Specific Features

This contract demonstrates:

  • Two-phase distribution: Registration → Claim separation

  • Merkle tree allocation: Fair token distribution

  • Multi-document registration: Both E-Passport and EU ID cards supported

  • Anti-duplicate measures: Nullifier and user identifier tracking

Registration Logic

The registration phase validates user eligibility and prevents duplicate registrations:

Key Validations:

  • Registration phase must be open

  • Nullifier hasn't been used (prevents same document registering twice)

  • Valid user identifier provided

  • User identifier hasn't already registered (prevents address reuse)

State Variables

For standard V2 integration patterns (constructor, getConfigId), see Basic Integration Guide.

Registration Verification Hook:

Claim Function Implementation

Configuration Management

The contract includes methods for managing verification configuration:

Administrative Functions

Airdrop Flow

  1. Deploy: Owner deploys with hub address, scope, and token

  2. Configure: Set verification config ID and Merkle root using setConfigId() and setMerkleRoot()

  3. Open Registration: Users prove identity to register

  4. Close Registration: Move to claim phase

  5. Open Claims: Registered users claim via Merkle proofs

  6. Distribution Complete: Tokens distributed to verified users

For verification configuration setup, see Hub Verification Process.

Last updated