Solana 批量转账(devnet)

连接 Phantom、Solflare 或 Backpack,粘贴地址和金额,页面会把转账打包进交易、创建缺失的代币账户,并请求你的钱包一次性签署全部交易。

交易在你的钱包中签署。本页没有服务器,不保存任何密钥,也不收取费用。仅限测试网络。主网:。

什么是 Solana 批量转账?

Solana 批量转账把多条 System Program 或 SPL Token 转账指令打包进尽可能少的交易(受 1232 字节数据包限制),然后请求钱包一次签署全部交易。无需部署合约:运行时原子地执行交易中的每条指令,因此每笔交易要么支付给全部接收方,要么一个都不支付。本页仅在 devnet 上运行。

步骤

  1. 连接钱包。如果 devnet 余额为空,点击空投(公共水龙头有速率限制;faucet.solana.com 是备选)。
  2. 选择 SOL 或粘贴 devnet 的 mint 地址。小数位和余额从 mint 和你的代币账户读取。
  3. 粘贴接收方并查看汇总:签名前会显示交易笔数和需新建的代币账户数。
  4. 每组最多 10 笔交易签名一次。日志显示每个签名及区块浏览器链接;最后导出 CSV。

交易是如何构建的

SOL 转账使用 SystemProgram 的 transfer 指令。代币转账使用带 mint 小数位的 TransferChecked,这样错误的小数位会在链上失败,而不是转错金额。代币账户通过关联代币账户(ATA)指令的幂等变体创建,可安全重放。代码直接构建这些指令,不依赖 spl-token 库。

限制与失败处理

交易按顺序发送并确认。若某笔失败(blockhash 过期、余额不足、RPC 错误),运行会停止,失败的接收方在结果表中标记,你可以只用剩余的行重新执行。页面绝不会重复已确认的转账。

相关工具:用 Solana 地址验证器检查地址,用 lamports 换算器换算金额。

常见问题

需要把钱包切换到 devnet 吗?

页面始终连接 devnet RPC,因此无论钱包的显示设置如何,交易都在 devnet 上构建和发送。要查看余额并避免 Phantom 的模拟警告,请在 设置 → 开发者设置 中启用测试网模式。

如果接收方没有代币账户会怎样?

页面会预先检查每个接收方的关联代币账户,并在需要时添加幂等的创建指令。租金由你支付(每个约 0.002 SOL)。已持有该代币的接收方不产生额外费用。

交易是如何拆分的?

Solana 交易限制为 1232 字节。每个新接收方会增加一个 32 字节账户和几字节指令,所以页面每笔交易打包 18 笔 SOL 转账或 8 笔代币转账,然后每 10 笔一组签名,以保持在 blockhash 有效期内。

可以发送到程序派生地址(PDA)吗?

SOL 可以。对于代币,关联代币账户由接收方派生,无论其是否在曲线上,这也正是交易所和程序所期望的行为。

为什么汇总显示的交易笔数比我预期的多?

每个接收方都会在账户列表中增加一个 32 字节公钥和一条指令,没有关联代币账户的代币接收方还需要额外的创建指令和更多账户。页面会控制每笔交易序列化后不超过 1232 字节,因此代币批次比 SOL 批次小。

Token-2022 呢?

支持。页面读取 mint 所属的程序,并用它构建转账和账户创建指令。带有转账钩子或手续费的 mint 可能需要额外账户,暂不处理。