Airdrop
The airdrop module manages the permissioned distribution of ERC-20 tokens using an on-chain contract. The main contract, InceptionAirdrop.sol
, handles eligibility verification, claiming, and tracking of distributed amounts.
The module includes its own ERC-20 mock tokens for testing purposes and supports upgradable deployments via OpenZeppelin proxies.
Components
1. InceptionAirdrop.sol
Core contract for processing token claims.
Likely includes a Merkle proof-based eligibility verification system or an internal mapping of claimable balances.
Handles validation, token transfers, and claimed state tracking.
2. IInceptionAirdrop.sol
Interface defining the functions exposed by the main airdrop contract.
Enables integration with other contracts or frontend applications.
3. MockErc20Token.sol / Token.sol
Simple ERC-20 implementations used for testing.
These are not production contracts.
4. Hardhat Setup
Hardhat config (
hardhat.config.ts
) and scripts automate deployment.Uses
.env_example
for environment configuration.
5. Deployment Metadata
.openzeppelin/mainnet.json
tracks upgradeable deployment data.
Flow Overview
A Merkle root or claim mapping is initialized with eligible addresses and claimable amounts.
A user calls the
claim()
function, passing the required proof (if applicable).The contract validates eligibility and transfers the corresponding ERC-20 amount.
The contract marks the user as claimed to prevent re-claims.
Smart Contract Highlights
Contract
Role
InceptionAirdrop.sol
Airdrop logic and eligibility checks
IInceptionAirdrop.sol
Interface for external interaction
MockErc20Token.sol
, Token.sol
Mock tokens used in test environment
Notes
Intended for token distributions controlled by Inception (e.g., Totem airdrops).
Implementation details (e.g., Merkle root vs mapping) can be confirmed by inspecting the contract directly.
Tests and scripts are provided but require environment setup via
.env
.
Last updated