PumpSwap volume bot: the cheaper half of a token life

PumpSwap is the automated market maker a Pump.fun token lands on when its bonding curve completes. Almost everything about routing changes at that moment, and the change is in your favour: the sniper contention that makes curve trading expensive has moved to the next launch, and the same campaign settings cost meaningfully less per landed swap. Most operators never adjust for it, which means they keep paying curve prices in an AMM environment.

Volion Research Updated Jul 30, 2026 5 sections

What PumpSwap is and when your token arrives there

PumpSwap is the AMM operated by Pump.fun where tokens migrate once their bonding curve fills. Before migration, price is a formula on supply with no pool and no counterparty. After migration, the token trades against a real liquidity pool, so price is set by reserves and every trade pays slippage proportional to its size against depth.

The practical consequence is that a campaign tuned for a bonding curve is mistuned the moment migration happens. On the curve there is no depth to size against, so trade size is limited by curve position and by how much of the remaining curve you are willing to consume. In a pool, the same trade size can move price several percent if depth is thin, and that price movement is money leaving your budget through slippage rather than arriving as volume.

Migration is also the moment new attention arrives. A campaign that stops during the handoff goes silent exactly when the chart is being looked at, which is the worst possible timing. A Pump.fun volume bot that cannot follow the token across the migration boundary is only useful for half the life of the token.

Measured: the AMM is far cheaper than the curve

Our block sampling attributes each transaction to the program that handled it, so the Pump.fun bonding curve and the Pump.fun AMM are measured separately. In the sample behind this page the curve failed at 92.4% and the AMM at 23.3%, which is a difference of 69.1 percentage points on the same token, days apart. The fee per attempt is similar. The failure rate is not, and failures are charged in full.
ProgramSampled txFailure rateMedian feeCost per landed swap
Pump.fun bonding curve4,72592.4%6,19381,487
Pump.fun AMM (post-graduation)2,34123.3%8,24310,747
The two halves of a Pump.fun token life, measured in the same block sample. The right-hand column is the number that decides a budget: median fee divided by the success rate.

That gap is not a quirk of one sample. Bonding curve traffic is where snipers compete for position on new launches, so a large share of submitted transactions lose the race and land as charged failures. Post-migration pools are ordinary trading venues, so contention falls back toward the network baseline. The fee schedule barely changes; the odds of your fee buying anything change enormously.

Every figure here is read from finalized blocks using getBlock, taking meta.fee and meta.err per transaction. The full method, including how transactions are attributed to programs, is on the measurement page. Nothing on this page is an estimate carried over from a vendor blog post.

How to resize a campaign after migration

Lower the priority bid because contention has fallen, size trades against pool reserves instead of curve position, and spread activity over a longer window because there is no launch race to win. The same volume target costs less to reach on the AMM, so either the budget goes further or the target can rise.
  • Bid lower. The priority fee that a contested launch window demanded is usually unnecessary once the token is in a pool. Mechanism in priority fees.
  • Size against depth. Estimate slippage from pool reserves at your intended trade size. A size that behaved acceptably on the curve can produce several percent of price impact in a shallow pool.
  • Spread further. Compressing activity into a short window makes your own wallets compete with each other for the same accounts, which raises failures without raising volume. Wallet count and pacing.
  • Reconsider bundles. Small trades against a deep pool are poor sandwich targets, so a tip may be buying inclusion speed rather than protection. What protection buys.

Volion detects the routing target from the mint before a campaign starts and hands off automatically at graduation, so activity continues across the boundary instead of pausing at it. The console shows which program it resolved to and the measured failure rate for that program, so the cost estimate you see is the one for your token rather than a network average.

Which signals still count after migration

Replies and the Pump.fun feed matter most while a token is on the curve. Once it graduates, aggregator surfaces take over: DexScreener, Birdeye and GeckoTerminal index the pool directly, and their ranking inputs are trade count, unique makers, volume and liquidity rather than platform-native engagement.

This is why the engagement layer in the console is restricted to tokens whose mint ends in pump and is greyed out for anything else. Replies and favourites are Pump.fun platform features. They do not exist on an AMM pool, and a vendor offering them for a migrated token is offering something that has no surface to appear on.

What replaces them is plainer and harder to fake convincingly: a trade history that looks like a market rather than like a script. Uniform trade sizes, a metronomic interval and a wallet set that all funded from one address are the three patterns that make a campaign legible to anyone reading the chart. How fleets get identified.

For how aggregators actually rank pools, and what is inferred rather than documented, see DexScreener trending and makers versus volume.

PumpSwap or Raydium: does the destination matter

For a volume campaign the destination matters less than the depth of the pool you land in. Both are ordinary AMM environments with contention near the network baseline. What differs is pool design: a constant-product pool gives smooth, predictable slippage, while a concentrated pool concentrates depth into ranges, so the same trade can execute cleanly or badly depending on where price sits.

If your token routes to a concentrated pool, check where liquidity actually sits before sizing trades. A series of buys that pushes price into a sparse range will move price further with each subsequent buy, which inflates the chart while draining the budget faster than planned. That combination looks like success and behaves like waste.

The measured picture across pool types is on the Raydium routing page, which covers AMM v4, CLMM and CPMM separately. A general Solana volume bot should resolve the destination from the mint rather than asking you to know it, and then price the campaign against the failure rate of that specific program.

Questions

What is PumpSwap?
PumpSwap is the automated market maker run by Pump.fun. A token migrates there when its bonding curve completes, at which point it trades against a real liquidity pool instead of following a supply formula.
Is a volume campaign cheaper on PumpSwap than on the bonding curve?
In our measurements, substantially. In the sample behind this page the curve failed at 92.4% and the AMM at 23.3%, which is a difference of 69.1 percentage points on the same token, days apart. The fee charged per attempt is similar on both, but a far higher share of curve attempts fail and are charged anyway.
Does a volume bot keep running after graduation?
It depends on the operator. Volion hands off automatically at graduation so activity continues through the migration window. Enable the handoff before launching rather than trying to switch mid-campaign.
Do comments and favourites still work after migration?
No. Replies and favourites are Pump.fun platform features tied to the token page. Once a token is trading on an AMM pool, aggregator surfaces take over and platform engagement no longer applies.
Should I use the same trade size after migration?
Not automatically. On the curve, price followed a formula and there was no depth to consider. In a pool, price is set by reserves, so a size that was fine on the curve can cause noticeable slippage in a shallow pool.
How do you know the failure rates you publish?
We sample finalized mainnet blocks with getBlock, read the fee and error status of every transaction, and attribute each one to the program that handled it. The sample size, slot range and method are published on the measurement page and refresh with each run.