# Airdrop ERC20 reivindicável

## Principais Recursos

* **Mecanismo de Auto-Reclamação**: Os usuários podem reivindicar seus tokens diretamente pela interface do contrato.
* **Lista de Permissão (Allowlist) Baseada em Merkle (Opcional)**: Use uma raiz Merkle para permitir que apenas endereços específicos reivindiquem.
* **Suporte a Reivindicação Pública**: Se nenhuma allowlist for definida, qualquer carteira pode reivindicar tokens.
* **Limites de Reivindicação**: Limite quantos tokens cada carteira pode reivindicar.
* **Carimbo de Data/Hora de Expiração**: Defina um horário após o qual os tokens não podem mais ser reivindicados.

## Parâmetros de Implantação Explicados

<figure><img src="/files/892d7eb9b2a8b853cfe6ff5136084846ed5889f8" alt=""><figcaption></figcaption></figure>

Antes de implantar o contrato, você deve preencher os campos a seguir:

| Campo                                    | Descrição                                                                                                                                                                                                                         |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nome**                                 | Um nome legível para humanos para o contrato (por exemplo, “Spring Token Drop”).                                                                                                                                                  |
| **Símbolo**                              | Um nome curto e simbólico (por exemplo, `SPRING`) para rotulagem na interface do usuário.                                                                                                                                         |
| **Imagem**                               | Faça upload de uma imagem ou logotipo para seu airdrop. Aparece na interface do usuário.                                                                                                                                          |
| **Proprietário do Token**                | O endereço que possui os tokens e que aprovará a transferência dos tokens do airdrop. Deve chamar `approve()` se não for o implantador.                                                                                           |
| **Token do Airdrop**                     | Endereço do contrato do token ERC20 a ser distribuído.                                                                                                                                                                            |
| **Quantidade do Airdrop**                | Número total de tokens disponíveis para reivindicação entre todos os usuários.                                                                                                                                                    |
| **Carimbo de Data/Hora de Expiração**    | Timestamp UNIX (em segundos) após o qual os tokens não podem ser reivindicados. Use um conversor (por exemplo, `https://www.unixtimestamp.com/`) para obter o valor correto.                                                      |
| **Limite de Reivindicação por Carteira** | <p>Número máximo de tokens que cada carteira pode reivindicar.<br>- Use <code>0</code> para confiar exclusivamente na allowlist Merkle.<br>- Defina qualquer número para impor um limite rígido por carteira no modo público.</p> |
| **Raiz Merkle**                          | <p>(Opcional) Raiz Merkle gerada a partir de uma allowlist.<br>- Se nenhuma for necessária, insira <code>0x</code> (estilo endereço zero).<br>- Usado para validar reivindicações off-chain e prová-las on-chain.</p>             |
| **Adicionar Lista de Airdrop**           | Ferramenta opcional para fazer upload da sua allowlist e gerar a raiz Merkle diretamente na interface.                                                                                                                            |

Uma vez que todos os campos obrigatórios estejam preenchidos, clique **Implantar Contrato**.

### Usando CSV para lista grande de endereços

Como com outros contratos, o uso de listas CSV também é permitido para um grande número de carteiras.

<figure><img src="/files/66763f182a656abb125d69c564d6517c067255b5" alt=""><figcaption></figcaption></figure>

## Como as Reivindicações Funcionam

Após a implantação:

* Se uma **raiz Merkle** for fornecida, os usuários devem **provar** que estão na allowlist submetendo uma prova válida no momento da reivindicação.
* Se nenhuma raiz Merkle for definida (`0x`), **qualquer usuário** pode reivindicar até o valor definido por `Limite de Reivindicação por Carteira`.
* Todas as reivindicações respeitam o **Carimbo de Data/Hora de Expiração**.

## Configuração de Exemplo (Testnet)

| Campo                                | Valor de Exemplo                          |
| ------------------------------------ | ----------------------------------------- |
| Nome                                 | Contrato de teste Airdrop ERC20 Claimable |
| Símbolo                              | CAERC20                                   |
| Proprietário do Token                | `0xAf16774D...BC0fB`                      |
| Token do Airdrop                     | `0xf3ba6c45...0bfa8edd`                   |
| Quantidade do Airdrop                | 10                                        |
| Carimbo de Data/Hora de Expiração    | `1715385600` (11 de maio de 2024)         |
| Limite de Reivindicação por Carteira | 1                                         |
| Raiz Merkle                          | `0x` (sem allowlist)                      |

### Notas

* Se o token não for **de propriedade do contrato**, o **o proprietário do token** deve aprovar o contrato para gastar o total `Quantidade do Airdrop`.
* Você pode reutilizar a `Adicionar Lista de Airdrop` opção para **gerar raízes Merkle** com allowlists atualizadas antes da implantação.
* Ideal para projetos que precisam de **airdrops públicos**, **campanhas de whitelist**, ou **incentivos com tempo limitado**.

## Incorporando o Contrato Airdrop ERC20 Claimable no Seu DApp (DexAppBuilder)

Após implantar e aprovar seu contrato de airdrop de token, você pode torná-lo disponível para os usuários interagirem diretamente do seu DApp. O DexAppBuilder fornece uma forma visual de incorporar uma interface de reivindicação pronta.

#### Passo a Passo: Adicionar Seção de Reivindicação ao Seu App

**1. Criar uma Nova Página**

<figure><img src="/files/410e2b942f59652719071387210198005abae2c6" alt=""><figcaption></figcaption></figure>

* Vá para **Admin > Gerenciar Apps > Editar App**
* Em `Páginas`, clique **+ NOVA PÁGINA**
* Insira um nome (por exemplo, `Reivindicar Tokens`) e clique **CRIAR**

**2. Adicionar uma Seção**

<figure><img src="/files/ca1e9e721b1ae3b20413db8bf1af61160e68bbf9" alt="" width="563"><figcaption></figcaption></figure>

* Dentro da nova página, clique **+ ADICIONAR SEÇÃO**

<figure><img src="/files/fe4489074bcd688f657ef1dddab1a665b28324fe" alt="" width="375"><figcaption></figcaption></figure>

* No modal, role ou pesquise por **DexGenerator Contract** (sob a categoria Web3)
* Clique para selecioná-lo

**3. Selecionar o Contrato de Airdrop Implantado**

<figure><img src="/files/09f960cef1f11732308ecbace3f31f1a1d728494" alt="" width="563"><figcaption></figcaption></figure>

* Você verá agora uma lista dos seus contratos implantados
* Escolha aquele com o tipo **AIRDROPERC20CLAIMABLE**

<figure><img src="/files/534a48c3814dcdb02a8c619cafe5a9187f6a9a59" alt=""><figcaption></figcaption></figure>

* Clique nele e visualize a interface de reivindicação

**4. Salvar e Publicar**

* Clique **SALVAR** para adicionar a seção à sua página

<figure><img src="/files/7db7f1a9a5064e52e4954a6dd4ac375a2f5fab8b" alt=""><figcaption></figcaption></figure>

* De volta ao layout da página, pressione **SALVAR** novamente para publicar as alterações

## A Experiência do Usuário: Reivindicando Tokens

Uma vez publicado, os usuários que visitarem esta página verão:

* **Informações do Token do Airdrop**: Endereço, símbolo e quantidade a reivindicar
* **Quantidade Disponível**: Quanto eles podem reivindicar
* **Informações de Expiração**: Data/hora de expiração se definida
* **Botão CLAIM AIRDROP**: Executa a função de reivindicação

{% hint style="warning" %}
Se o contrato usar uma árvore Merkle (allowlist), o usuário deve estar incluído e fornecer uma prova válida (tratada automaticamente se integrada corretamente).
{% endhint %}

#### Passo Final Opcional: Publicar Página Pública

* Ative o **VER PÁGINA PÚBLICA** interruptor para tornar a página do contrato acessível a usuários externos.
* Isso facilita o compartilhamento de páginas de reivindicação de airdrop sem incorporação.


---

# 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.dexkit.com/produtos-e-solucoes-defi-pt/dexcontracts/contratos-thirdweb/airdrop-erc20-reivindicavel.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.
