Ethereum L1 ERC-777 Batch Sender
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This tool allows you to send any ERC-777 token to many recipients in a single batch transaction on Ethereum L1. ERC-777 is an advanced token standard that introduces hooks (sender and receiver callbacks) and is backward-compatible with ERC-20. Instead of processing individual transfers, you provide a list of addresses and amounts, and the tool packages them into one multisend call using the BotGentz sender contracts. It automatically detects the token's decimals, handles the approval of the token for the sender contract (ERC-777 uses the ERC-20 approve mechanism for operator permissions), computes the exact total including the dynamic fee charged by the contract, checks your wallet balance against that total, and executes the batch send. Batching saves gas and ensures all recipients receive their exact amounts in one atomic operation.
HOW TO USE
Connect your EVM wallet using the BGWallet bridge. Select the network (Ethereum L1 is the default, but other supported chains are available). Paste the ERC-777 token address for that network into the provided field — this is the token you want to send, not the batch contract. The tool will automatically fetch the token's decimals. Then enter your recipients, one per line, in the format `0xAddress,amount` (e.g., `0x123...,1.5`). Click Validate to parse and check the addresses and amounts. The tool will display the total tokens, the current fee charged by the sender contract (in token units), and your wallet balance. If you have sufficient funds, click "Send batch" to approve the exact required amount and execute the batch transfer.
ONE TECHNICAL SECTION
The tool uses the BotGentz multisend registry, which contains known sender contract addresses per chain and standard (ERC20, ERC721, ERC1155). For ERC-777 tokens, it uses the ERC20 entry from the registry since ERC-777 tokens implement the ERC-20 `approve` and `transferFrom` interface for operator-based transfers. It reads the fee live from the sender contract's `fee()` function — never hardcoded — and also fetches the contract owner for transparency. The tool dynamically fetches the token's decimals using the `decimals()` method (which ERC-777 inherits from ERC-20), ensuring accurate amount parsing and display. The approval is for the exact total of all recipient amounts plus the fee. The batch send is executed as a single transaction using the contract's `batchSendERC20` method, which works with ERC-777 tokens because they implement the standard transferFrom interface. The tool checks the balance per sender before initiating and uses `receipt.effectiveGasPrice` to accurately reflect post-EIP-1559 gas costs.
WHAT IT CANNOT SEE
This tool cannot verify that the recipient addresses are correct or owned by the intended parties. It cannot predict future gas price fluctuations or network congestion. It does not validate the security, authenticity, or compliance of the token contract you provide — you must ensure you are using the correct address and that the token properly implements ERC-777. It cannot guarantee compatibility with all ERC-777 implementations, especially those with non-standard hook behaviors or custom operator logic. The tool does not handle approvals that have been previously set; it always performs a fresh approval for the exact total. It cannot recover failed sends or reverse transactions once broadcast. It does not detect if the token has unusual hook behavior that could affect the actual amount received or cause reverts.
PLEASE NOTE
This tool is for EVM-compatible chains only. It does not support non-EVM chains. Always double-check the token address for your selected network. The batch sender contract charges a fee which is read live and displayed before you sign. Ensure you trust the contract — its address is shown in the review section. ERC-777 tokens may have sender/receiver hooks that can add custom logic during transfers; this tool does not simulate or validate hook behavior, so test with a small amount first.