Volume Bots
Continuous buy-and-sell cycles through disposable wallets.
A volume bot buys and sells one token on a loop, through wallets it creates, funds and empties itself. Several bots can run at once, one per token, each with its own wallets, log and stop switch.
Nothing about this makes money. A round trip pays the venue's fee twice and the spread once, so the honest way to think about a run is as an advertising budget with a measurable burn rate. The cost section below is the part worth reading before the settings.
Before you start
- An RPC for the chain (Settings). A bot makes a lot of calls; a rate limited endpoint will stall it.
- A base wallet holding the working capital plus gas for the whole run. Everything is funded from it and everything is swept back to it.
- The token address, and a rough idea of how deep the venue is. Use Find pools below.
Basic or Pro
The new bot form opens in Basic, which asks three questions:
- how much volume to print,
- over how long,
- how many wallets should be trading at once.
From those it works out the buy size, the hold, the gap, the rounds per wallet and how many wallets the run gets through, and shows you every one of those before you start. The bot then holds itself to the number: it measures what each round actually printed and sizes the next ones to land on the target, and it stops when it gets there or when the time is up.
Pro is every setting on its own, as before, with no target. Switching to it shows exactly what Basic was going to send, so it is a starting point rather than a different tool.
The reason for the split is that the settings interact. Pool size, hold, gap, in flight and the buy band together decide the volume, the pace and how much the run looks like one person, and solving that by hand for "print five over an hour" is not a reasonable thing to ask.
Step by step
- Paste the token and press Find pools. It names the venue and the depth. This is read-only and costs nothing.
- Pick the venue, or leave it on the automatic setting where the chain offers one.
- Say how much and how fast in Basic, or set the schedule yourself in Pro.
- Pick the base wallet and read the summary panel. It states what is tied up, what comes back and what is actually spent, before anything moves.
- Start. The bot appears in the list with a live status panel and its own log.
- Stop when you have had enough. Stopping is graceful; see Stopping.
Picking the venue
Leave it on Read from the token. The bot resolves the venue the same way whether you press Find pools first or not, and Find pools now shows you the answer it would reach before you start.
Pinning a venue is a check rather than an override: if the token is somewhere else the run stops and names what is wrong, instead of trading nothing. That was not true on BSC until recently, and it cost somebody ten funded wallets and every buy reverting while the panel said "running". The venue named OneMeme V3 launch is the worst trap: it is a token launched here with its supply in a locked pool, and it is not, and has never been, an ordinary PancakeSwap V3 pool.
A token whose only liquidity is an ordinary PancakeSwap V3 pool has no first-party venue here at all. The Aggregator is the route to it, and Read from the token picks that by itself.
What each chain can reach
| Chain | First party | Routed |
|---|---|---|
| BSC | the OneMeme curve and its V3 launches, four.meme, Flap, Genius, and any PancakeSwap V2 pair with real depth | everything else, including ordinary PancakeSwap V3 pools, pairs against another token, and a graduated Genius token in its PancakeSwap Infinity pool |
| Robinhood | the PONS curve, Uniswap V2 pairs, Uniswap V3, SushiSwap V3 | V4 pools, and anything with no pair or pool against the coin |
| Arc | Argus launch pools (Uniswap V4), the Faze curve, Uniswap V3 | everything else, including a graduated Faze coin in its Uniswap V4 pool |
Uniswap V3 on Robinhood is not the same thing as the SushiSwap V3 also deployed there: two separate deployments at different addresses. It is where the chain's tokenised equities actually trade, and until recently this console could not reach them first hand at all. Read off the factory: SPY holds 1.6e22 of liquidity at the 0.05% tier, SPCX 1.4e22, GME 3.3e21.
A pair against the coin is not the only kind of market. What this console calls a pair is always token-against-the-coin, because every buy spends the coin and every sell returns to it, so a token whose real market is a pair with ANOTHER token is reachable only by routing. Those tokens very often still have a near-empty coin pair left over from a launch that moved on, and trading that pays the whole spread to yourself. A thin pair is measured against what routing can do with the same money and loses when it deserves to.
Find pools
Optional, and read-only. It asks every launchpad on the chain whether it knows the token, then scans for pairs and pools, and reports what it found with the depth of each:
| Badge | Meaning |
|---|---|
| on the ... curve | Still on a bonding curve, named. There is no pool anywhere yet and no aggregator can route to it. |
| trading in a pool | It has a pair or a pool. The list below names each one and how deep it is. |
| no venue found | Nothing on this chain trades it. Usually a wrong address, or a token on another chain. |
The depth column is the coin side of each pool, which is the practical measure of how much a trade can absorb before it moves the price. A bot sized above it is paying the spread to itself.
Three numbers that are easy to confuse
| Setting | What it means |
|---|---|
| Wallets | How many sub-wallets the run creates in total, over its whole life. 0 means keep making new ones until stopped. |
| Trading at a time | How many are alive at once, taking turns. This is what someone reading the chain sees. |
| Rounds per wallet | How many buy-and-sell cycles each wallet does before it is retired and swept. |
50 wallets with 2 trading at a time is not 50 addresses trading. It is 2, for as long as it takes the other 48 to have their turn, which can be many hours. If you want more addresses visible at once, raise Trading at a time, not Wallets.
Total trades is wallets × rounds × 2, and the summary panel prints it along with the estimated
duration, so a run that would take three days says so before it starts.
In Basic there is no wallet cap at all. The run keeps making them until the target is reached, so the only one of the three you set is how many trade at once.
How the money is spread
A run funded straight from one wallet is the shape screeners look for. A public tracker flagged a run of ours with this, and it was right:
93% of 15 sampled active traders funded by one wallet (likely team wash-trading)
Fund through separate wallets is on by default and fixes the shape. The base wallet pays a handful of intermediaries; each of those pays two or three traders and nothing else. When a trader retires it sweeps back into the one that paid it, which both keeps the sweep off the base wallet's ledger and refills that intermediary for the next trader. At the end of the run they all empty back to the base wallet.
Measured on a fork of BSC, across twelve traders: the most common funder went from being behind 93% of them to being behind 25%, over five intermediaries, and the base wallet made four transfers instead of twelve.
It does not hide the root from anyone willing to walk two hops. It removes the star, which is what the automated checks key on. Turning it off restores the old shape and is only there for a run where nobody is looking.
Relay funding, in Pro, is the other half: a retiring wallet hands what it has left straight to its successor rather than sweeping. With both on, the fork run showed sixteen distinct funders behind eighteen traders and no address behind more than 11% of them.
Every setting
| Setting | What it does | Worth knowing |
|---|---|---|
| Base wallet | Funds every cycle, receives every sweep | Needs the peak funding plus gas. See If the base wallet is thin. |
| Buy size range | Each buy is drawn between the two | Keep the top of the range well under the venue's depth or the bot moves the price against itself. |
| Gas buffer | Extra coin sent to each wallet purely for its own gas | The form warns if it cannot cover a buy, an approval, a sell and a sweep at the current price. |
| Hold range | How long a wallet sits on a position before selling | Short holds read as a machine. Long holds tie up capital. |
| Gap range | Time between trades across the whole pool | This, not the wallet count, sets the trade rate. |
| Max in flight | Transactions allowed on the wire at once | Capped deliberately. A hundred at once is not more volume, it is a rate limited RPC and a pool moving against every one of them. |
| Fund through separate wallets | Put intermediaries between the base wallet and the traders | On by default. See How the money is spread. |
| Relay funding | Fund each new wallet from the one it replaces | On, a retiring wallet pays its successor directly, so funding reads as traders paying each other. It hides nothing from anyone willing to walk the graph; it removes the star. |
| Venue | Where the trades go | Pinning one is a check: if the token is in a different phase the run stops and names the venue it belongs to. |
If the base wallet is thin
Every wallet in the pool holds all of its rounds at once, so a pool of five is five wallets' worth of coin out of the base wallet at the same moment. The Tied up at once line on the plan panel is that number.
Ask for a bigger pool than the base wallet can carry and the bot says so in its first few lines, naming both figures, and trades with the pool that fits rather than the one you asked for. If it cannot carry even one wallet it refuses to start and says what it would need.
This used to go differently and it was bad. The bot discovered the shortfall one wallet at a time, gave up on funding permanently the first time the base wallet read as short, and finished the job with however many wallets it had managed. On a thin base that is one address, printing the whole tape back to back, which is the single most obvious pattern there is. Reproduced on a fork: one address, 100% of the trades, and the run giving up eighteen seconds into the ninety it was given.
Two things were wrong. The shortfall was treated as permanent when it is temporary, because retiring wallets pay their money back. And the block applied to opening any wallet at all, when late in a run the coin is usually sitting in a funding wallet one hop away rather than at base. Both now behave the way the money actually moves: the same fork run rotates across nine addresses with none of them above 11% of the tape.
While it runs
The status panel is live. Phase moves through funding, buying, holding, selling and sweeping; volume printed and rounds done climb; wallets holding funds is the number that matters if something goes wrong.
The log names every transaction with a link, and every failure with the node's own words. A wallet that cannot be funded, or whose buy reverts, is reported and retired rather than silently skipped.
Stopping
Stopping is cooperative. The bot finishes the round it is in, sells every open position, sweeps every wallet, and only then reports. It is not killed mid cycle with a funded wallet holding tokens.
The platform fee is taken after that wind-down, on the volume actually printed. A run stopped halfway is charged for the half it printed, not for what it was planning to print.
Recovery
Every sub-wallet key is written to an encrypted vault as the bot creates it, before any money moves to it. If a bot dies badly, or the server restarts, which ends every running bot, the funds are not lost: the Unrecovered runs list on the page replays the sale and the sweep from the vault.
A wallet is only listed as stranded if the chain says it still holds something. A wallet whose funding transfer never landed is listed as failed, and there is nothing to recover from it.
A deployment update restarts the service and therefore stops every running bot. Stop them yourself first if you can, and recover them from the vault if you could not.
What a run costs
The volume figure is not what you spend, and the summary panel says so in four lines rather than leaving you to work it out:
| Line | What it is |
|---|---|
| Tied up at once | The most that is out of the base wallet at any moment. It is lent to the trading wallets, not spent. |
| Comes back | Almost all of it. Every wallet is swept when it retires, and every funding wallet at the end of the run. |
| Trading cost and gas | The venue's fee both ways, the price your own buys move, and gas for every wallet and every transfer. This is the part that stays gone. |
| Actually spent | The above plus the platform fee, taken once at the end on the volume actually printed. |
Asking for 5 of volume does not mean parting with 5. The same coin is bought and sold over and over: what leaves the base wallet is one pool's worth at a time, and what stays gone is the spread plus gas.
Measured on a fork of BSC against a deep PancakeSwap pair, printing 2 BNB of volume: the base wallet was down 0.0117 BNB, which is 0.58% of the volume printed, gas included. Every one of the sixteen addresses the run created read as empty afterwards, for coin and for token, and the base wallet's own balance before and after is what that figure is taken from rather than the bot's opinion of itself.
On a thin pool it is far more, because your own buy is most of the price move. The Find pools depth is the number to check that against.
The venue's own fee is the other half of it, and it varies more than the pool does. Measured on a fork against a Genius curve, printing 2 BNB of volume across twelve wallets: the base wallet was down 0.0465 BNB, which is 2.33% of the volume printed. Genius charges 2% on every trade in both directions, so a round trip pays 4% before the spread and the gas, where a deep V2 pair pays 0.5%. Printing volume on a curve is simply dearer than printing it in a pool, and the plan panel's Actually spent line is where that shows up.
A Genius token inside its first fifteen seconds charges every address but the creator and the wallets named at its launch a 99% tax. A bot pointed at one there prints almost nothing for its money. Wait for the window to close.
Measured the same way on a fork of Arc, against a live Faze curve: twelve wallets printed 815.27 USDC of volume against an 800 target, and the base wallet was down 8.25 USDC, which is 1.01% of the volume. Faze charges 1% each way, so a round trip pays 2% before the spread, which is half what the same run costs on Genius. Nothing was left behind: every one of the seventeen addresses the run created came back to zero.
The same warning applies to a Faze coin, with a shorter clock: 99% for its first three seconds, decaying to the ordinary 1%. A coin whose curve has not been opened yet refuses every trade outright until the wallet its launch named makes the first buy, and the bot says so rather than reporting a broken token.
Printing volume on a Faze curve that is near its target will eventually fill it. The buy that completes the raise builds the Uniswap V4 pool and graduates the coin inside itself, and every later buy on the curve reverts. The run log reports how far along the raise is before it starts.