# AirdropERC20

O [Contrato AirdropERC20](https://dexappbuilder.dexkit.com/forms/deploy/thirdweb/AirdropERC20) pela ThirdWeb simplifica a distribuição de tokens ERC20 ou tokens nativos (por exemplo, Ether na mainnet do Ethereum) para uma lista predefinida de destinatários. Este contrato é particularmente útil quando os destinatários não precisam reivindicar individualmente seu airdrop; em vez disso, eles recebem automaticamente os tokens por meio de uma transferência.

## **Principais Recursos**

1. **Airdrop de Token:** Facilita o airdrop sem complicações de tokens ERC20 ou tokens nativos para uma lista especificada de endereços de destinatários.
2. **Lista de Destinatários:** Utiliza um array de objetos contendo endereços de destinatários e quantidades de tokens, simplificando a configuração dos parâmetros do airdrop.

## **Casos de Uso e Exemplos**

1. **Campanhas de Airdrop de Tokens:**
   * **Caso de Uso:** Distribua tokens promocionais automaticamente para um público-alvo.
   * **Exemplo:** Recompensar usuários fiéis ou membros da comunidade com tokens sem exigir reivindicações manuais.
2. **Recompensas da Comunidade:**
   * **Caso de Uso:** Alocar tokens para membros da comunidade com base em suas contribuições.
   * **Exemplo:** Reconhecer e incentivar o engajamento da comunidade com recompensas em tokens.
3. **Incentivos em Tokens para Usuários:**
   * **Caso de Uso:** Incentive o uso da plataforma fazendo airdrops de tokens para os usuários.
   * **Exemplo:** Impulsionar a adoção de usuários oferecendo incentivos por meio de distribuições de tokens.
4. **Sorteios em Eventos:**
   * **Caso de Uso:** Realize sorteios durante eventos fazendo airdrops de tokens para os participantes.
   * **Exemplo:** Envolver os participantes do evento e criar entusiasmo por meio de sorteios de tokens.
5. **Recompensas de Staking Automatizadas:**
   * **Caso de Uso:** Distribua recompensas de staking automaticamente para detentores de tokens.
   * **Exemplo:** Implementar um sistema de recompensas de staking sem intervenção manual para detentores de tokens.
6. **Subvenções de Tokens para Desenvolvimento:**
   * **Caso de Uso:** Fornecer subvenções de desenvolvimento fazendo airdrops de tokens para endereços selecionados.
   * **Exemplo:** Apoiar desenvolvedores e projetos por meio de subvenções em tokens para promover o crescimento do ecossistema.
7. **Alocação de Tokens para Provedores de Liquidez:**
   * **Caso de Uso:** Recompensar provedores de liquidez fazendo airdrops de tokens com base em sua contribuição.
   * **Exemplo:** Incentivar a provisão de liquidez em exchanges descentralizadas com recompensas em tokens.
8. **Distribuições de Tokens para Funcionários:**
   * **Caso de Uso:** Facilitar distribuições de tokens para funcionários como parte da remuneração.
   * **Exemplo:** Integrar recompensas em tokens nas estruturas de compensação dos funcionários.
9. **Incentivos de Votação Tokenizados:**
   * **Caso de Uso:** Incentivar a participação em eventos de votação tokenizada por meio de incentivos em airdrops.
   * **Exemplo:** Aumentar a participação dos eleitores recompensando os participantes com tokens.
10. **Transações sem Gas com Forwarders Confiáveis:**
    * **Caso de Uso:** Habilitar transações sem gas usando ERC-2771 e forwarders confiáveis.
    * **Exemplo:** Facilitar transações sem exigir que os usuários possuam ETH para taxas de gas.

## **Implantando este contrato**

{% embed url="<https://dexappbuilder.dexkit.com/forms/deploy/thirdweb/AirdropERC20>" %}
Link direto
{% endembed %}

<figure><img src="https://1903426557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWrjgYUyO4ch1fBehrMEq%2Fuploads%2Fvb65cTNkw56A8cYkq2lb%2Fimage.png?alt=media&#x26;token=8eaed960-737e-4051-a1fa-7b281060ad1e" alt=""><figcaption></figcaption></figure>

Durante a implantação, os seguintes parâmetros são necessários:

1. **Metadados do Contrato:**
   * **Nome:** \[Insira o Nome do Contrato]
   * **Símbolo:** \[Insira o Símbolo do Contrato]
   * **Descrição:** \[Insira a Descrição do Contrato]
   * **Imagem:** \[Carregar Arquivo de Imagem]

## Usando este contrato

Uma vez que o contrato tenha sido implantado com sucesso, você pode gerenciar seu comportamento através de uma interface amigável. Para isso, clique no **"Gerenciar Contrato"** botão no modal de confirmação após a implantação. Isso o levará ao painel do contrato com três abas principais:

<figure><img src="https://1903426557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWrjgYUyO4ch1fBehrMEq%2Fuploads%2FQbimIOgwupN2u8OEQTOd%2Fimage.png?alt=media&#x26;token=d395abce-d137-4ec2-9565-c562a65f7412" alt=""><figcaption><p>Se o seu contrato foi implantado corretamente, você verá este modal.</p></figcaption></figure>

<figure><img src="https://1903426557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWrjgYUyO4ch1fBehrMEq%2Fuploads%2FvFrxxTG966vx4uFCCJue%2Fimage.png?alt=media&#x26;token=59aee766-3441-4e80-a728-349760b95ced" alt=""><figcaption><p>Seção administrativa do AirdropERC20</p></figcaption></figure>

### Aba Airdrop

Esta é a funcionalidade central do contrato — distribuir tokens aos destinatários.

* **Selecionar Token**: Clique em **SELECIONAR** para escolher o token ERC20 ou token nativo (por exemplo, tBNB na testnet) para o airdrop.
* **Total para Airdrop**: Exibe a quantidade total de tokens definida para distribuição.
* **Total de Destinatários**: Exibe o número de endereços de carteira adicionados para receber tokens.
* **Gerenciamento de Destinatários**:
  * Clique **SELECIONAR** para fazer upload ou inserir a lista de endereços de destinatários e as quantidades de tokens correspondentes.
  * Você pode manualmente **ADICIONAR REGISTRO**, ou usar a **IMPORTAR** opção para fazer upload em massa de destinatários via CSV.
  * Use **EXPORTAR** para baixar a lista atual de entradas do airdrop.
* **Confirmar**: Após finalizar a lista de destinatários e o token, clique em **CONFIRMAR** para iniciar a transação de airdrop. O botão permanece desabilitado até que todas as entradas obrigatórias sejam fornecidas.

{% hint style="warning" %}
Nota: O airdrop real será deduzido do saldo de tokens do contrato. Certifique-se de que o contrato possua tokens suficientes antes de confirmar.
{% endhint %}

<figure><img src="https://1903426557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWrjgYUyO4ch1fBehrMEq%2Fuploads%2FMYIykLBzMvJjm7mlDU9J%2Fimage.png?alt=media&#x26;token=841e087b-6deb-4a38-aace-a44fe71fe9a4" alt=""><figcaption></figcaption></figure>

### Aba de Metadados

Esta seção permite que você modifique a identidade pública do seu contrato de airdrop.

* **Nome**: Você pode editar o nome do contrato aqui.
* **Descrição**: Útil para descrever o propósito ou contexto do airdrop.
* **Imagem**: Atualize ou substitua a imagem associada a este contrato.

Clique **ATUALIZAR** para salvar as alterações. Essas atualizações de metadados são armazenadas on-chain e podem exigir uma transação dependendo da implementação.

<figure><img src="https://1903426557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWrjgYUyO4ch1fBehrMEq%2Fuploads%2F9ptkTVR3JnhEid0dWAUs%2Fimage.png?alt=media&#x26;token=1ceba9a5-d9ac-4d68-978f-94fe8e397893" alt=""><figcaption></figcaption></figure>

### Aba Admin

Esta seção define as permissões baseadas em funções disponíveis dentro do contrato. As funções determinam quem pode executar ações administrativas ou operacionais específicas.

* **Administrador**: Pode conceder/revogar funções e modificar configurações do contrato.
* **Transferir**: Pode transferir tokens usando o contrato.
* **Minter/Criador**: Pode cunhar ou criar novos tokens (se aplicável).
* Outras funções disponíveis incluem:
  * **Pausador:** Permite que o endereço designado pause ou retome funções do contrato (se implementado). Útil para paradas de emergência ou manutenção do contrato.
  * **Listador:** Concede permissão para listar tokens ou ativos gerenciados pelo contrato — comumente usado em contextos de marketplaces ou registros.
  * **Gerente de Ativos:** Concede permissão para listar tokens ou ativos gerenciados pelo contrato — comumente usado em contextos de marketplaces ou registros.
  * **Desembrulhar:** Permite que o endereço desembrulhe tokens ou ativos embrulhados (por exemplo, converter tokens embrulhados de volta à forma nativa).
  * **Fábrica:** Habilita a criação de novas instâncias de contrato ou clones se o contrato atual atuar como uma fábrica.
  * **Assinante:** Permite que o endereço assine operações em nome de usuários ou sistemas. Frequentemente usado com meta-transações ou lógica off-chain.
  * **Metadados:** Concede permissão para atualizar os metadados do contrato, incluindo nome, imagem e descrição.
  * **Revogar:** Esta função pode revogar funções ou permissões de outros endereços.
  * **Migração:** Usado durante atualizações ou migrações do sistema. O endereço pode lidar com processos de migração de dados ou transição de contrato.

Para atribuir uma função, cole o endereço da carteira e clique em **ADICIONAR**. Em seguida clique em **ATUALIZAR** para confirmar as alterações on-chain.

## Realizando um Airdrop Usando um Arquivo CSV

Para simplificar distribuições de tokens em larga escala, a `AirdropERC20` interface permite que você faça upload de um arquivo CSV contendo endereços de destinatários e suas quantidades de tokens correspondentes.

### Guia Passo a Passo

<figure><img src="https://1903426557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWrjgYUyO4ch1fBehrMEq%2Fuploads%2FcRA1BlHOOVJoqSG1xXUg%2Fimage.png?alt=media&#x26;token=145d9dfa-a463-4566-8928-9e3f8b2f0eb1" alt=""><figcaption></figcaption></figure>

1. **Abra o Painel de Airdrop**\
   No painel do contrato, navegue até a aba **Airdrop** e clique no **SELECIONAR** botão na seção “Total de destinatários”. Isso abre o gerenciador de destinatários.

<figure><img src="https://1903426557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWrjgYUyO4ch1fBehrMEq%2Fuploads%2FSykAQgbhRZwXdXPpm5gM%2Fimage.png?alt=media&#x26;token=e90631ff-4917-453d-b306-9c6d3411dbee" alt=""><figcaption></figcaption></figure>

2. **Baixe o Modelo CSV**

* Clique no **EXPORTAR** botão (canto superior direito do modal).
* Isto baixa um arquivo CSV de exemplo com o formato correto. Você pode usar este como modelo.

✅ **Dica:** O arquivo conterá duas colunas:

```
cssCopyEditendereço,quantidade
```

3. **Prepare Seu Arquivo CSV**\
   Abra o arquivo em qualquer editor de planilhas (por exemplo, Excel, Google Sheets) e preencha-o com os endereços dos destinatários e a quantidade de tokens que cada um deve receber.

Exemplo:

```
CopyEdit0x1234...abcd, 100
0xabcd...5678, 250
```

<figure><img src="https://1903426557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWrjgYUyO4ch1fBehrMEq%2Fuploads%2FhdcyI7gVKrbaQ9rziE22%2Fimage.png?alt=media&#x26;token=45ac54fb-f954-451e-8860-a4ae995b077e" alt=""><figcaption></figcaption></figure>

4. **Importe o Arquivo CSV**

* Retorne ao gerenciador de destinatários e clique em **IMPORTAR**.
* Faça upload do seu arquivo CSV preenchido. Se o arquivo estiver formatado corretamente, você verá todas as linhas exibidas sob as **Colunas** e **Quantidade** Endereço

5. **Revisar e Confirmar**

* Verifique novamente se a quantidade total e o número de destinatários correspondem às suas expectativas.
* Clique **CONFIRMAR** para finalizar a configuração do airdrop.
* Você pode ser solicitado a assinar uma transação para autorizar a transferência.

{% hint style="warning" %}
**Importante:** Certifique-se de que o contrato tenha saldo de tokens suficiente para cobrir o airdrop inteiro. Também assegure que o endereço de carteira selecionado tenha permissões para executar o airdrop.
{% endhint %}

## Observações sobre Uso em Testnet

Estas imagens mostram o uso em **Testnet da BNB Smart Chain**. Se você estiver testando, certifique-se de:

* Sua carteira está conectada à rede correta.
* Você tem tBNB de testnet para taxas de gas.
* Você concede permissões apropriadas se os contratos de token as exigirem.
