Solana Multi-Wallet Transfer: Send from Many Wallets to Many Wallets in One Run

Twenty wallets each need to pay a different address. Funnelling everything through one hub costs two rounds of fees and links every wallet to that hub. Here is the way to do it in one pass with each pair standing on its own.

Updated September 20267 min read

Short answer: open solback.app/tools/multi-send, choose SOL or a token, paste the sending wallets' private keys on the left and the recipient addresses on the right — line 1 pays line 1, line 2 pays line 2 — pick an amount mode, validate, and send. Every pair becomes its own transaction, signed locally by its sender only, so no two wallets ever appear in the same transaction. SolBack takes nothing; each sender pays its own network fee.

What is a many-to-many transfer, and when do you need one?

Most batch tools are one-to-many: one wallet pays a list. Many-to-many is the other shape — a list of source wallets, each paying its own destination, in one run.

The jobs that need it share a constraint: the funds are already spread out, and you want to keep them that way.

How do you send from many wallets to many wallets with SolBack, step by step?

Step 1: Open Multi to Multi and pick the asset

Go to solback.app/tools/multi-send. Choose SOL, or paste a token's mint address and let the tool identify it — it reads the mint's decimals so the amounts you enter are token units, not raw integers. One asset per run.

Step 2: Senders on the left, recipients on the right

Left column: one private key per line, in base58 or the Solana CLI [1,2,3…] array format. Right column: one address per line. Pairing is by line number — the first key pays the first address, and so on down the list. The two columns must have the same number of lines.

The keys are decoded in your browser's memory and used to sign locally; nothing is uploaded and nothing is stored. Close the tab and they are gone.

Step 3: Choose an amount mode

Mode What each sender sends Typical use
Fixed amountThe same amount from every walletFunding a set of accounts evenly
All balanceEverything, with the exact network fee deducted so SOL senders end at zeroRetiring the source wallets
Keep a reserveEverything except a fixed amount left behindEmptying while keeping fee money for later
Random rangeA random amount between two bounds, different per pairDistributions that should not all be identical
CustomAn amount you set per rowPayouts from a spreadsheet

For a token, all-balance sends the whole token balance and sends no SOL — the sender still pays its own network fee, and the rent for the recipient's token account if one has to be created.

Step 4: Validate and preview

Click validate. The tool parses every key and address, fetches balances, and shows the full pairing table: which wallet, which recipient, how much. If a single line fails to parse, or the counts differ, the run is blocked — a shifted list would pay the wrong people, and there is no undo on Solana.

Step 5: Send

Leave both send interval fields blank and every pair is broadcast at once; the run finishes in seconds. Fill in either bound and the pairs go out one by one with a random pause between them. Each pair is its own transaction, signed by its sender, and settles on its own; the row status updates as each one confirms.

Why one transaction per pair?

A Solana transaction is signed by every wallet that spends in it. Put two senders in one transaction and both signatures sit on the same on-chain record — those two wallets are now linked, forever, to anyone who looks. Multi to Multi never does that. Each pair is a separate transaction with exactly one signer, so each sender's history stays its own.

It also makes failures local. If one sender is short on fees or one recipient's account cannot be created, that pair fails and the rest go through. Nothing is held in escrow and nothing is half-sent: check the results and re-run the rows that did not confirm.

Transfers cannot be undone. Once a pair confirms, the funds belong to the recipient. The validation step exists so that you never send from a shifted list — take a warning about a bad line seriously rather than deleting the line to make the list load.

What does it cost?

SolBack takes nothing from a Multi to Multi run — no percentage, no per-transfer charge. It sits with Batch Send, Batch Collector's transfers, Relay Transfer, Batch Query and Wallet Generator in the group of tools that are free to use.

What you do pay goes to the network: each sender covers its own transaction fee, about 0.000005 SOL plus whatever priority fee you choose in the settings, and if a recipient has never held the token being sent, the sender pays the current 0.00148844 SOL minimum to create the recipient's standard token account. Sending plain SOL never triggers that, since SOL needs no token account.

Which SolBack transfer tool fits your shape?

Need the wallets first? Wallet Generator creates them locally and exports a table that pastes straight into the sender column.

Pay from every wallet in one run

Line-paired senders and recipients, one independent transaction per pair, nothing linked and nothing deducted.

Open Multi to Multi Free to use. Each sender pays its own network fee; keys are decoded in your browser and never uploaded.

Still have questions about many-to-many transfers on Solana?

How is Multi to Multi different from a multisender?
A multisender has one sender and many recipients, and packs several recipients into each transaction from your connected wallet. Multi to Multi has many senders, each paired with its own recipient, and every pair is a separate transaction signed only by that sender. Use Batch Send when the funds are in one wallet; use Multi to Multi when they are spread across many wallets and you do not want to funnel them through one hub first.
Why does each pair get its own transaction?
Because a transaction is signed by every wallet that spends in it. Bundling two senders into one transaction would put both signatures on the same record and tie the two wallets together on-chain forever. One transaction per pair keeps each sender's history separate — and it means a failure in one pair cannot affect any other.
What happens if the number of keys and addresses do not match?
The run is blocked. Pairing is by line number, so a list that is one line longer than the other, or a key that fails to parse, would shift every pair below it and pay the wrong recipients. The tool refuses to start until every line parses and the counts are equal. That is deliberate, not a nuisance.
Can I send each wallet's entire balance?
Yes. In the all-balance mode the tool asks the network for the exact fee of each transaction and deducts it, so the sender ends at zero rather than failing for want of a few thousand lamports. For a token, all-balance sends the whole token balance and no SOL; the sender still pays its own fee and any token-account rent. The reserve mode sends everything except a fixed amount you keep behind.
What does the send interval do?
Left blank, every pair is broadcast concurrently and the run finishes in seconds. Fill in either bound and the pairs are sent one at a time with a random pause between them, so the transfers do not all land in the same block. Neither mode changes what is sent, only when.
Does SolBack charge for Multi to Multi?
No. Multi to Multi takes nothing — no percentage, no per-transfer charge. Each sender pays its own network fee (about 0.000005 SOL plus any priority fee you set), and if a recipient has no account for the token being sent, the sender pays the current 0.00148844 SOL minimum to create a standard account.