Airdrop distribution flow
How DALP moves tokens from a funded airdrop contract to eligible addresses, including Merkle proof checks, claim tracking, strategy variants, and failure modes.
System context
Airdrop distribution starts after an asset exists and the issuer funds an airdrop contract. DALP stores a Merkle root for the recipient allocation, verifies a submitted proof before each distribution, records claim state, and transfers tokens from the airdrop contract to eligible addresses.
Identity, claim topics, and trusted issuers are defined in the claims and identity model. Per-asset compliance checks are defined in asset policy.
Related
- Airdrop, contracts, roles, and configuration
- Signing flow, transaction signing and custody
- Compliance transfer, transfer validation for compliance-enabled tokens
- Asset issuance, how assets are created before distribution
Flow overview
The airdrop distribution flow moves tokens from a funded airdrop contract to eligible recipients. Eligibility is verified with Merkle proofs against the stored root, so the contract does not trust an off-chain oracle at claim time. The flow applies to time-bound, vesting, and push strategies. Each strategy adds a different timing, release, or distribution constraint.
Claim-based happy path
- The admin deploys the airdrop contract with a Merkle root for the recipient list and allocations. Strategy-specific parameters, such as time windows or vesting schedules, are set at deployment.
- The admin funds the contract address with enough tokens to cover the intended allocation.
- The recipient generates a Merkle proof off-chain and calls
claim(proof, amount). - The contract verifies the proof against the stored root. Invalid proofs revert with no distribution.
- The contract checks the claim tracker to confirm the recipient has not exceeded the allocation.
- The contract transfers tokens to the recipient address through ERC20 transfer.
- The claim tracker records the claim so the same allocation cannot be claimed twice.
Strategy variants
Each strategy modifies the base flow with additional constraints:
Time-bound airdrop
- Claim window enforced. The contract checks that
block.timestampfalls between the configured start and end times. Claims outside this window revert. - Post-expiration withdrawal. After the end time, the contract owner can withdraw unclaimed tokens. Recipients can no longer claim.
Vesting airdrop
- Cliff period. No tokens release until the cliff duration elapses from the vesting start time.
- Progressive release. After the cliff, tokens unlock linearly over the vesting period. Recipients can claim their vested portion at any time.
- Multiple claims. Recipients call
claim()repeatedly as more tokens vest. The amount tracker records cumulative claims against the total allocation.
Push airdrop
- Admin initiated. The administrator calls a distribution function, supplies the recipient allocation proof, and pushes tokens directly to recipient addresses. Recipients do not call
claim(). - Owner controlled claim tracking. Distribution is controlled by the admin. The Merkle root still validates recipient eligibility, but the claim lifecycle is inverted.
Claim tracking strategies
| Strategy | Mechanism | Best for | Gas profile |
|---|---|---|---|
| Bitmap (DALPBitmapClaimTracker) | One bit per recipient | All-or-nothing claims | Constant cost, gas-efficient for large lists |
| Amount (DALPAmountClaimTracker) | Tracks claimed amount per user | Partial claims, vesting airdrops | Higher per-claim cost, supports progressive release |
The claim tracker is selected at deployment and cannot be changed. Bitmap tracking is the default for time-bound and push strategies. Amount tracking is required for vesting airdrops.
Failure modes
| Failure | Result |
|---|---|
| Invalid Merkle proof | The proof does not match the stored root. The transaction reverts with no state change. |
| Already claimed with bitmap tracking | The recipient bit is already set. The transaction reverts. |
| Claim exceeds allocation with amount tracking | The cumulative claimed amount would exceed the Merkle encoded allocation. The transaction reverts. |
| Outside a time-bound claim window | block.timestamp is before start or after end. The transaction reverts. |
| Before a vesting cliff | No tokens are releasable. The transaction reverts. |
| Insufficient airdrop balance | The contract does not hold enough tokens to fulfil the claim. ERC20 transfer reverts. |
Airdrop contracts and factory identifiers exist for the supported strategies. Treat this page as the architecture explanation for distribution semantics, not as a UI walkthrough.
Related resources
- Airdrop, contracts, roles, and configuration
- Signing flow, how transactions are signed and broadcast
- Compliance transfer, transfer validation when tokens carry compliance rules
- Asset issuance, how assets are created before airdrops
- Capabilities overview, how capabilities extend the platform
Digital Asset Initial Offering
How a DALP Digital Asset Initial Offering models primary distribution through a token sale configuration, investor participation, settlement, refunds, and vesting.
Treasury Distribution
How DALP fixed treasury yield uses a configured treasury address to fund holder-initiated claims for completed yield periods.