Пакетный перевод Solana (devnet)

Подключите Phantom, Solflare или Backpack, вставьте адреса и суммы — страница упакует переводы в транзакции, создаст недостающие токен-аккаунты и попросит кошелёк подписать всё за один раз.

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

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

Пакетный перевод Solana упаковывает множество инструкций перевода System Program или SPL Token в минимально возможное число транзакций, укладывающихся в лимит пакета 1232 байта, а затем просит кошелёк подписать их все сразу. Контракт не разворачивается: рантайм выполняет все инструкции транзакции атомарно, поэтому каждая транзакция либо платит всем своим получателям, либо никому. Эта страница работает только в devnet.

Шаги

  1. Подключите кошелёк. Если баланс в devnet пуст, нажмите Airdrop (публичный кран ограничен по частоте; запасной вариант — faucet.solana.com).
  2. Выберите SOL или вставьте адрес mint в devnet. Decimals и ваш баланс читаются из mint и вашего токен-аккаунта.
  3. Вставьте получателей и проверьте сводку: число транзакций и новых токен-аккаунтов показывается до подписания.
  4. Подписывайте по одному разу на каждую группу до 10 транзакций. В логе отображается каждая подпись со ссылкой на обозреватель; в конце экспортируйте CSV.

Как строятся транзакции

Переводы SOL используют инструкции transfer программы SystemProgram. Переводы токенов используют TransferChecked с decimals из mint, поэтому неверное значение decimals завершится ошибкой в сети, а не отправкой неправильной суммы. Токен-аккаунты создаются идемпотентным вариантом инструкции Associated Token Account, который безопасно повторять. Код собирает эти инструкции напрямую и не зависит от библиотеки spl-token.

Лимиты и обработка сбоев

Транзакции отправляются и подтверждаются по порядку. Если одна из них не проходит (истёкший blockhash, нехватка средств, ошибка RPC), выполнение останавливается, неудавшиеся получатели помечаются в таблице результатов, и вы можете перезапустить только оставшиеся строки. Уже подтверждённые переводы страница никогда не повторяет.

См. также: проверьте адреса в валидаторе Solana-адресов, переведите суммы в конвертере lamports.

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

Нужно ли переключать кошелёк на devnet?

Страница всегда обращается к RPC devnet, поэтому транзакции собираются и отправляются в devnet независимо от настройки отображения в кошельке. Чтобы видеть балансы и избежать предупреждения симуляции в Phantom, включите Testnet Mode в разделе Settings → Developer Settings.

Что будет, если у получателя нет токен-аккаунта?

Страница заранее проверяет associated token account каждого получателя и при необходимости добавляет идемпотентную инструкцию создания. Ренту (около 0,002 SOL за каждый) платите вы. Получатели, у которых токен уже есть, ничего дополнительно не стоят.

Как разбиваются транзакции?

Транзакции Solana ограничены 1232 байтами. Каждый новый получатель добавляет 32-байтный аккаунт плюс несколько байт инструкции, поэтому страница укладывает 18 переводов SOL или 8 переводов токенов в одну транзакцию, а затем подписывает их группами по 10, чтобы оставаться в окне действия blockhash.

Можно ли отправить на program-derived address?

Для SOL — да. Для токенов associated token account выводится из получателя независимо от того, лежит ли он на кривой, — именно этого ожидают биржи и программы.

Почему в сводке больше транзакций, чем я ожидал?

Каждый получатель добавляет 32-байтный публичный ключ в список аккаунтов плюс инструкцию, а получателям токенов без associated token account нужна дополнительная инструкция создания и больше аккаунтов. Страница подбирает размер каждой транзакции так, чтобы она сериализовалась менее чем в 1232 байта, поэтому пакеты токенов меньше пакетов SOL.

Как насчёт Token-2022?

Поддерживается. Страница читает программу-владельца mint и использует её для инструкций перевода и создания аккаунтов. Mint с transfer hooks или комиссиями могут требовать дополнительных аккаунтов и не обрабатываются.