> For the complete documentation index, see [llms.txt](https://docs.inceptionlrt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.inceptionlrt.com/developers/modules/airdrop.md).

# 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

1. A Merkle root or claim mapping is initialized with eligible addresses and claimable amounts.
2. A user calls the `claim()` function, passing the required proof (if applicable).
3. The contract validates eligibility and transfers the corresponding ERC-20 amount.
4. 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`.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.inceptionlrt.com/developers/modules/airdrop.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
