Solana 一括送金とは
Solana 一括送金は、多数の System Program または SPL Token の送金命令を、1232 バイトのパケット制限に収まる範囲でできるだけ少数のトランザクションに詰め込み、ウォレットにそれらすべてへの一括署名を求めます。コントラクトのデプロイは不要です。ランタイムはトランザクション内のすべての命令をアトミックに実行するため、各トランザクションは全受取先に支払うか、まったく支払わないかのどちらかです。このページは devnet でのみ動作します。
手順
- ウォレットを接続します。devnet 残高が空なら「エアドロップ」を押してください(公開フォーセットにはレート制限があります。faucet.solana.com が代替手段です)。
- SOL を選ぶか、devnet の mint アドレスを貼り付けます。小数桁と残高は mint とあなたのトークンアカウントから読み取ります。
- 受取先を貼り付けてサマリーを確認します。署名前に、トランザクション数と新規トークンアカウント数が表示されます。
- 最大 10 トランザクションのグループごとに 1 回署名します。ログにはすべての署名がエクスプローラーリンク付きで表示され、最後に CSV をエクスポートできます。
トランザクションの構築方法
SOL 送金は SystemProgram の transfer 命令を使います。トークン送金は mint の小数桁を指定した TransferChecked を使うため、小数桁が間違っていても誤った金額が送られるのではなくオンチェーンで失敗します。トークンアカウントは Associated Token Account 命令の冪等版で作成され、再実行しても安全です。コードはこれらの命令を直接組み立てており、spl-token ライブラリに依存しません。
制限と失敗時の処理
トランザクションは順番に送信・確認されます。1 つが失敗した場合(期限切れの blockhash、残高不足、RPC エラー)、実行は停止し、失敗した受取先が結果テーブルにマークされ、残りの行だけで再実行できます。既に確認済みの送金がページによって繰り返されることはありません。
関連: Solana アドレスバリデーターでアドレスを確認、lamports コンバーターで金額を変換。