Пакетный перевод EVM (Sepolia и другие тестнеты)

Подключите MetaMask или любой кошелёк EIP-1193 в тестнете, вставьте адреса и суммы и отправьте всё одной подписью на пакет через минимальный контракт disperse с открытым исходным кодом.

Транзакции подписываются в вашем кошельке. У этой страницы нет сервера, она не хранит ключи и не берёт комиссию. Только тестовые сети. Основная сеть: .

Что такое пакетный перевод EVM?

Пакетный перевод EVM — это одна транзакция, вызывающая контракт disperse с массивами получателей и сумм; контракт пересылает нативную монету на каждый адрес либо забирает токены через transferFrom и отправляет их через transfer, и всё это атомарно. Одна подпись заменяет сотни, а отправитель платит газ один раз. Эта страница ограничена Sepolia и другими тестнетами проверкой chain ID.

Шаги

  1. Переключите кошелёк на Sepolia (страница предлагает кнопку переключения) и убедитесь, что у вас есть немного тестового ETH.
  2. Выберите нативную монету или вставьте контракт токена. Страница читает символ, decimals и ваш баланс.
  3. Выберите пакетный контракт: известный контракт disperse в Sepolia, развёрнутый вами ранее, произвольный адрес или разверните новый (около 0,4 млн газа).
  4. Вставьте получателей, проверьте сводку и нажмите «Отправить». Следите за логом; каждый пакет ссылается на обозреватель блоков.

Газ и лимиты

Весь газ платит отправитель. Пакет из 150 нативных переводов на новые адреса в Sepolia стоит примерно 4–5 млн газа в одной транзакции — по числу подписей и времени это гораздо дешевле, чем 150 отдельных отправок. Если оценка кошелька не проходит, уменьшите число получателей на транзакцию.

Проверка контракта

Исходный код BatchTransfer занимает 50 строк и компилируется solc 0.8.28 (оптимизатор включён, 200 прогонов). Опубликованный JSON содержит ABI и байткод создания; вы можете воспроизвести его с теми же настройками компилятора или верифицировать развёрнутый контракт в обозревателе по исходному файлу.

См. также: сначала проверьте список в валидаторе адресов, переведите суммы токенов в конвертере decimals, разберите calldata в ABI-декодере.

Часто задаваемые вопросы

Какой контракт используется?

В Sepolia страница по умолчанию использует известный контракт disperse по адресу 0xD152f549545093347A162Dce210e7293f1452150, который применяется с 2018 года и развёрнут по тому же адресу во многих сетях. В других тестнетах, или если вы предпочитаете собственный, страница разворачивает контракт BatchTransfer, исходный код которого указан выше; адрес запоминается в вашем браузере.

Зачем нужен approve для токенов?

Контракт забирает ровно итоговую сумму из вашего кошелька через transferFrom и отправляет её каждому получателю в той же транзакции. Approve выдаётся ровно на эту сумму, а не безлимитно, и расходуется пакетом.

Каков максимум на транзакцию?

Каждый нативный перевод стоит примерно 9 000–35 000 газа в зависимости от того, новый ли получатель; переводы токенов — около 30 000–55 000. При лимите газа блока 30M безопасное значение по умолчанию — 150 получателей; увеличьте до 300, если сеть позволяет, и уменьшите, если транзакция падает с out-of-gas.

Работает ли с токенами вроде USDT, которые не возвращают bool?

Да. Контракт BatchTransfer допускает токены, которые ничего не возвращают, и откатывается только при возврате false или revert, поэтому устаревшие токены работают.

Почему мой кошелёк в основной сети отклоняется?

Так задумано. Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum, OP Mainnet и другие блокируются проверкой chain ID, а кнопка развёртывания контракта никогда не показывается. Для использования в основной сети см. контактную заметку внизу инструмента.