# 2种方法实现solana批量转账，批量交易

By [lisi](https://paragraph.com/@lisi) · 2024-12-28

---

在 Solana 区块链上进行批量转账，可以通过使用 Solana 的开发工具和脚本实现批量转账，别一种可以通过像GTokenTool这样的平台实现批量转账，无需代码。以下是实现批量转账的2种方法：

**1.脚本实现批量转账**
==============

主要步骤：

**脚 本批量转账方法概述**
===============

**1.安装必要工具：**
=============

确保已经安装了 Solana CLI 和 Node.js。安装 Solana SDK，比如 @solana/web3.js。

**2.创建转账脚本：**
=============

编写一个脚本，循环遍历收款地址和金额列表，并创建批量交易。

利用 Transaction 对象，可以将多个转账操作合并到一个交易中提交。

**3.发送交易：**
===========

将构建好的交易发送到 Solana 网络。

使用 Connection 来管理与 Solana 节点的通信。

    const {
        Connection,
        PublicKey,
        clusterApiUrl,
        Keypair,
        Transaction,
        SystemProgram,
    } = require('@solana/web3.js');
    

    // 配置网络和密钥
    const connection = new Connection(clusterApiUrl('mainnet-beta'), 'confirmed');
    const sender = Keypair.fromSecretKey(Uint8Array.from([...your_private_key_here])); // 替换为你的私钥// 收款地址和金额列表
    const recipients = [
        { address: 'Recipient1Address', amount: 1e9 }, // 1 SOL
        { address: 'Recipient2Address', amount: 0.5e9 }, // 0.5 SOL
        // 添加更多收款人
    ];(async () => {
        const transaction = new Transaction();    for (const recipient of recipients) {
            const { address, amount } = recipient;        transaction.add(
                SystemProgram.transfer({
                    fromPubkey: sender.publicKey,
                    toPubkey: new PublicKey(address),
                    lamports: amount, // 转账的单位是 lamports（1 SOL = 10^9 lamports）
                })
            );
        }    // 签名并发送交易
        const signature = await connection.sendTransaction(transaction, [sender]);
        console.log('Transaction sent with signature:', signature);    // 等待确认
        const confirmation = await connection.confirmTransaction(signature, 'confirmed');
        console.log('Transaction confirmed:', confirmation);
    })();
    

二、通过[GTokenTool](https://www.gtokentool.com/)实现solana批量转账

进入批量转账页面 [https://sol.gtokentool.com/#/batchTool/batchTransfer/SOL](https://sol.gtokentool.com/#/batchTool/batchTransfer/SOL)，右上角连接钱包

![](https://storage.googleapis.com/papyrus_images/053e497702716619a9783b8c21eb4359a8007a560787d78464cbb1ae784f2371.png)

可以输入（在输入框中输入要转账的地址以及数量，用英文逗号隔开），也可以导入文件，

举个例子：如图当前我导入40个钱包，点击“下一步”会显示本次地址有四十个，每个钱包转0.01SOL，总共需要0.4个SOL，我的SOL余额

确认信息无误后点击“发送交易” 注意：因为SOLANA交易哈希长度限制问题，本平台采用20个钱包一笔交易，弹一次钱包，在这里我导入了四十个钱包，也就是弹两次如下图钱包，弹出钱包点击确认就完成了

页面会出现“操作成功”小提示，表示发送成功，可以去SOLANA官方浏览器查看

来源：[https://docs.gtokentool.com/solana/solana-pi-liang-zhuan-zhang-gong-ju-wu-xian-dao-ru-jiao-cheng](https://docs.gtokentool.com/solana/solana-pi-liang-zhuan-zhang-gong-ju-wu-xian-dao-ru-jiao-cheng)

**注意事项**
========

**手续费：**

*   每个转账操作都需要手续费，确保你的账户中有足够的 SOL 来支付手续费和转账金额。
    

**批量交易大小限制：**

*   Solana 每笔交易的大小有上限，批量转账时需要注意不要超过限制。
    

**错误处理：**

*   添加错误捕获代码，确保批量转账操作的稳定性。
    

**测试环境：**

*   在主网运行前，建议在测试网（`testnet`）或开发网（`devnet`）中进行测试。
    

**安全性：**

*   不要在代码中直接暴露私钥，可以使用环境变量或更安全的方式管理密钥。

---

*Originally published on [lisi](https://paragraph.com/@lisi/2-solana)*
