How a Solana volume bot works, step by step
A volume bot is a fleet of funded wallets executing ordinary swap transactions against a decentralised exchange, on a schedule. There is no privileged access, no special API and no trick. Everything it does, a person with enough patience and enough wallets could do by hand. What follows is the whole sequence, including the parts that fail, because the failures are where the money goes.
The whole sequence, start to finish
Identify the token
Paste the mint address. The console reads public on-chain metadata and resolves which venue holds the deepest liquidity: a Pump.fun bonding curve, the Pump.fun AMM, a Raydium pool, Meteora, Orca. Nothing is signed and no key is requested at this step or any other.
Shape the campaign
Choose a volume target, a wallet count, a trade size range, a duration and a distribution shape. The console redraws the projected trade distribution as you move each control, so the settings and the resulting chart shape are visible together rather than described in a sentence.
Read the estimate
The cost panel splits into service fee, estimated network fee and estimated account rent. The network figure uses the measured failure rate of the venue your token actually trades on, not a network average, because those differ by an order of magnitude.
Fund the campaign
A funding address is reserved for thirty minutes and shown with a QR code. You send SOL from a wallet you control in a single transfer. There is no wallet connect step and no approval to sign, because the engine never needs permission over your wallet.
The fleet runs
The engine derives the wallet fleet, funds each wallet, and executes swaps against the resolved venue across the duration you set, following the distribution shape you chose. Failed attempts are retried within the budget rather than silently dropped.
Volume lands and indexes
Each landed swap is an ordinary on-chain trade. DexScreener, Birdeye, GeckoTerminal and the Pump.fun feed index the pool the same way they index any other trade. Leftover SOL returns to the address it came from when the campaign ends.
The step most operators gloss over is the third. An estimate computed from a network-wide average is close to meaningless, because the failure rate on a contested bonding curve and the failure rate on a quiet pool differ by a factor of several. A Solana volume bot that quotes one number for every token is quoting a number that fits nobody.
What happens on each individual swap
That last sentence is the whole economics of this category compressed into one line. The fee is charged on submission, not on success. So the honest unit price of a swap is not the median fee of 5,000 lamports; it is that figure divided by the success rate on your venue. On a heavily contested bonding curve, the difference between those two numbers is close to an order of magnitude.
The failure sources are worth naming because they are controllable in different ways. Contention losses are addressed by priority fees, which are a bid rather than a price. Slippage failures are addressed by trade sizing against real pool depth. Self-contention, where your own wallets compete for the same accounts, is addressed by pacing. All three are configuration decisions, which is why the console exposes them instead of hiding them behind a preset.
The mechanics of each are covered in priority fees, Jito tips and wallet count.
Why it needs many wallets rather than one
The cost of the fleet is not the wallets themselves, which are free to derive. It is the associated token account each one needs to hold your token, which locks roughly 0.00204 SOL in rent while it exists. At a thousand wallets that is around two SOL held, recoverable when the accounts close. This is the line most cost estimates omit entirely.
Fleet size is a genuine trade-off rather than a bigger-is-better setting. More wallets means more makers and more rent, and if the volume target is fixed, each wallet trades less. Beyond a point the extra makers are not buying anything and the rent is pure overhead. How aggregators score the two.
What the aggregators actually see
This is why the shape controls exist. A campaign that fires uniform trades at a fixed interval from wallets that were all funded by one address is trivially identifiable by anyone who looks, not because the trades are marked but because real markets do not look like that. Varying size, interval and direction is not deception; it is the difference between activity that reads as a market and activity that reads as a loop.
What no engine controls is what the platform does with the signal. Ranking inputs are weighted, undocumented, and change without notice. Volume is one input among several. Anyone promising a trending placement is promising something they cannot deliver. What is documented and what is inferred.
What a volume bot cannot do
- Not price support. A balanced campaign is designed not to move price. A campaign that did move price would be spending the budget on slippage instead of volume.
- Not permanent holders. Campaign wallets are transient by construction, and holder count that arrives and leaves with a campaign is visible on any holder chart.
- Not a guarantee of anything. Platform rankings weigh multiple signals and change without notice. Which signals count.
- Not custody. No private key, no seed phrase, no wallet connect. You fund an address; the fleet runs; leftovers return. What that protects and what it does not.
The honest framing is that a campaign buys the mechanics of attention, not attention itself. On a Pump.fun volume bot run that means feed placement and reply activity during the window that matters; on an established pool it means aggregator surfaces. In both cases, if there is nothing behind the token, the chart goes quiet when the campaign ends.