# Custom recipients

The [token multisender](https://tokentool.bitbond.com/token-multisender/ethereum) function allows you to **send tokens to many recipients in one transaction** by inserting a list of custom recipients addresses and amounts. The tokens that you want to send have to be in your wallet that is connected to Token Tool.

Copy and **paste** a list of addresses with the respective token amount that you want to send to each address. Alternatively, you can **upload** a .csv, .xls or .txt file with the list.

The list should include each recipient address and the respective token amount separated by a comma (note that **there must not be a space after the comma**). Each address has to be on a newline like in this example:

{% code lineNumbers="true" %}

```
0x53c23c9d7fa6468f3c99c45791998e259baa32cd,64
0xc26f229db52da0ebf814dfd58a8949cdf6b6baee,35
0xdc47799ecb3433e5805dfe034f5fc6eb72f68d1e,89
0xa1cba1a1fba99c53c91b66863bc76ce00e7da787,95
0x4491bb52e325f16dd825192517b7e5daf3bc7391,12
```

{% endcode %}

After you have included your list, you will be asked to **approve** Token Tool to send tokens on your behalf. Your tokens will be sent to batches of 200 addresses. If there are more than 200 addresses in your list, you will have to approve each batch separately.

After the distribution is done, you can also revoke the permission for sending from Token Tool via Metamask.

This function is useful for

* Initial token distribution to investors after a primary issuance
* Sending additional tokens to token holders after a capital increase or a rights issue
* Sending dividend or coupon payments in stable coins, cryptocurrencies or asset tokens to token holders
* Conducting an airdrop of tokens to a long list of addresses

**Optionally**, you can also add **a third attribute** to the input. This allows you to attach an individual message to each transfer. This can be useful in situations where you want to add an internal reconciliation ID or a message that is necessary for regulatory purposes to each transfer. This is how an example input would look like:

{% code lineNumbers="true" %}

```
0x53c23c9d7fa6468f3c99c45791998e259baa32cd,64,first message
0xc26f229db52da0ebf814dfd58a8949cdf6b6baee,35,second message
0xdc47799ecb3433e5805dfe034f5fc6eb72f68d1e,89,third message
0xa1cba1a1fba99c53c91b66863bc76ce00e7da787,95,fourth message
0x4491bb52e325f16dd825192517b7e5daf3bc7391,12,fifth message
```

{% endcode %}

Note that this Distribute Token is not supported on Ethereum Goerli testnet. However, it does work on Ethereum mainnet and all other supported chains (both main and testnets).

<figure><img src="/files/qMGsJeEpu7TQ5ozua1Ic" alt=""><figcaption></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.bitbond.com/asset-tokenization-suite/token-tool/airdrop-tokens/custom-recipients.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.
