# Airdrop

TokenTable Airdrop empowers users to distribute tokens at a massive scale with powerful optional vesting rules, access control rulesets, and optimized gas cost (e.g. sharding for TON).

### How Does Airdrop Work?

At its core, TokenTable Airdrop uses merkle trees to enable constant-cost token distributions and vesting rules. If a token allocation needs to be split across 6 calendar months to claim, we simply process and pre-split the data into 6 calendar months when generating the merkle tree. As a result, said allocation actually consists of 6 leaf nodes and are treated as 6 separate claims to the smart contract. Our frontend then abstracts this technical detail away, providing users with a smooth experience. Access control rulesets can be implemented via an external hook contract that's called when a claim is made and reverts when certain conditions fail, similar to the one found [here](/for-developers/unlocker/evm/apis/utilities/external-hook.md). We also use this mechanism to charge fees for token claims.

When the recipient claims their token allocation, a merkle proof is generated by our backend that's then fed to the smart contract. Note that although we generate the proofs, the smart contract ownership itself is assigned to the project owner and there is nothing we can do to assert control over the smart contract.

<figure><img src="/files/PjQUJOQHv5mlwwqXtfDE" alt=""><figcaption><p>An overview of the Airdrop workflow</p></figcaption></figure>


---

# Agent Instructions: 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.tokentable.xyz/for-developers/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.
