The Pump.fun bonding curve works as a constant-product pricing rule over virtual reserves: launch reserves are 30 virtual SOL and 1,073,000,000 virtual tokens, and every buy or sell keeps their product fixed. Only 793,100,000 tokens can be sold on it. When those are gone the curve is marked complete and its liquidity moves to PumpSwap, which by our arithmetic from the published constants happens after roughly 85 SOL has flowed in, at a market cap near 410 SOL.
Key points
- Price on the curve is simply virtual SOL divided by virtual tokens, and the product of the two never changes.
- Launch price works out to about 0.000000028 SOL per token, a market cap near 28 SOL on a 1 billion supply.
- Progress follows tokens sold out of 793.1 million, so the bar runs ahead of the SOL raised early on.
- The same 1 SOL buy gets roughly nine times fewer tokens at 60 SOL raised than at launch.
- Completion is automatic and one-way: the complete field switches on and anyone can trigger the move to PumpSwap.
So what does the Pump.fun bonding curve actually do?
Picture a one-coin vending machine. There's no order book and no market maker deciding prices. You send SOL in, the program hands tokens out, and the price for the next person shifts by a fixed rule. Sell tokens back and the machine pays you SOL from what it holds, at whatever the rule says right now.
The rule is the old constant-product formula from AMMs like Uniswap v2: x times y equals k. Pump.fun's twist is that x and y aren't real balances when the coin launches. They're virtual numbers chosen so the starting price isn't zero and the first buyers can't drain the pool for nothing.
Why does that matter to you? Because every number you see on a coin page during the curve stage (price, market cap, the progress bar) falls straight out of four constants that Pump.fun publishes in its program docs.
The four constants Pump.fun publishes
| Constant | Value | What it does |
|---|---|---|
| Virtual SOL reserves at launch | 30 SOL | Sets the starting price; no real SOL sits behind it |
| Virtual token reserves at launch | 1,073,000,000 | The other side of the product |
| Real tokens sold on the curve | 793,100,000 | When these run out, the curve is complete |
| Total supply | 1,000,000,000 | Used for market cap; 206,900,000 never trade on the curve |
Multiply the two virtual reserves and you get k = 30 x 1,073,000,000 = 32,190,000,000. That one number governs the whole life of the curve. Every trade moves the reserves along a hyperbola, and k stays put.
How the price math works, step by step
Spot price is virtual SOL divided by virtual tokens. At launch that's 30 / 1,073,000,000, or about 0.00000002796 SOL per token. Multiply by the 1 billion supply and you get a starting market cap of about 27.96 SOL.
There's a shortcut worth knowing. Because virtual tokens always equal k divided by virtual SOL, price equals virtual SOL squared divided by k. So market cap on the full supply is just virtual SOL squared divided by 32.19. Plug in 30 and you get 27.96. Plug in 115 and you get about 410.9. It's a neat way to sanity-check any figure you see on a coin page.
- Take the virtual SOL now in the curve, for example 30 at launch.
- Add the SOL you are buying with, before fees: 30 + 1 = 31.
- Divide k by the new SOL figure to get the new virtual token reserve: 32,190,000,000 / 31 = 1,038,387,097.
- Subtract that from the old token reserve to see what you receive: 1,073,000,000 - 1,038,387,097 = 34,612,903 tokens.
- The new spot price is 31 / 1,038,387,097, about 0.0000000299 SOL, so your own buy pushed it up roughly 7%.
That 1 SOL bought about 3.46% of the whole supply. Early buyers always get this kind of deal on a constant-product curve, and it's the reason a snipe in the first block can grab so much. Trading fees sit outside this sum. During one of our runs they're already inside the flat 1% of the volume goal, along with network costs and Jito tips, so the creator pays nothing on top. The costs a creator does meet, from the first click to migration, are laid out in our guide to Pump.fun costs for creators.
Worked example: price and progress from launch to completion
We sampled the curve at a few points below. SOL raised means net SOL that has entered the curve after buys and sells, fees aside. Progress is tokens sold divided by 793.1 million.
| SOL raised | Virtual SOL | Tokens sold | Progress | Price per token (SOL) | Market cap (SOL) |
|---|---|---|---|---|---|
| 0 | 30 | 0 | 0% | 0.0000000280 | 28.0 |
| 10 | 40 | 268.25M | 33.8% | 0.0000000497 | 49.7 |
| 20 | 50 | 429.20M | 54.1% | 0.0000000777 | 77.7 |
| 40 | 70 | 613.14M | 77.3% | 0.0000001522 | 152.2 |
| 60 | 90 | 715.33M | 90.2% | 0.0000002516 | 251.6 |
| 85.0 | 115.0 | 793.10M | 100% | 0.0000004109 | 410.9 |
Look at the progress column next to SOL raised. The first 10 SOL already sells a third of the curve's tokens. The last 25 SOL, from 60 to 85, only clears the final tenth. So a bar that sits at 90% can still need more SOL to finish than it took to get from zero to a third.
Same thing from a buyer's angle. One SOL at launch got 34.6 million tokens. One SOL at 60 SOL raised moves virtual SOL from 90 to 91, and 32,190,000,000 / 91 = 353,736,264, so you receive 357,666,667 - 353,736,264 = about 3.93 million tokens. Nearly nine times fewer, for the same SOL.
Market cap climbs much faster than SOL raised, too. It goes from 28 to about 411 SOL, roughly 15x, while the SOL in the curve only grows from 30 virtual to 115. Squared growth will do that.
What makes the progress bar move, and what moves it back?
Only net buying. A buy removes tokens from the curve and pushes progress up; a sell returns tokens and pulls it down by exactly the same rule. Ten wallets that each buy and then sell the same amount leave progress where it started, minus nothing except the fees they paid.
That's worth repeating because it trips people up. Volume and progress are different things. A coin can print 300 SOL of two-sided trading and barely move the bar, while 40 SOL of steady net buying takes it most of the way to the end. In our runs we see this play out constantly: the activity a visitor sees comes from turnover, and curve progress only comes from buyers who hold.
When we're running volume across the curve for a creator, we set expectations up front. The run adds trades, unique wallets and a busy chart. Whether the curve finishes depends on how much real net demand shows up alongside it, and nobody can promise that.
Does the curve stage connect to King of the Hill?
Loosely. Pump.fun's only primary statement on King of the Hill is a February 2024 post on X that tied the spot to roughly a $30k market cap. Its current docs and FAQ don't describe the ranking at all. If that old threshold still applied, it would sit somewhere in the upper half of the curve depending on the SOL price, so the coin would still be on the bonding curve when it got there. We sort the known from the guessed in how the top spot works.
What happens when the bonding curve completes?
The program watches the real token reserve. At the end of the buy that takes it to zero, a field called complete flips from false to true. No more curve trades after that. The migrate instruction is permissionless, so anyone can call it, and it's idempotent: calling it twice does nothing extra. It moves the curve's liquidity into a PumpSwap pool and burns the LP tokens that pool hands back, which means nobody can pull that liquidity later.
The move is automatic and it can't be reversed. Pump.fun charges 0.015 SOL for it. We cover the threshold, the pool and what changes for traders in our article on Pump.fun graduation.
Why the famous $69k number is not in the docs
You'll see "$69k" quoted everywhere as the graduation market cap. Pump.fun's docs don't state it. The curve finishes at a market cap measured in SOL, around 410 SOL by our arithmetic, and the dollar figure is simply that times whatever SOL trades at that day. At $150 per SOL it's about $61.6k. At $200 it's about $82k.
Common mistakes when reading the curve
A few we keep running into:
- Treating progress as a percentage of SOL. It tracks tokens, so 50% progress is only about 18 SOL raised, not 42.
- Assuming the price at 90% is close to the final price. At 90.2% market cap is about 252 SOL; it still has to rise past 400.
- Forgetting that sells walk the curve back down. A coin that hit 80% yesterday can sit at 60% today.
- Mixing up market cap and liquidity. A 150 SOL market cap coin has only around 40 SOL of real SOL in the curve behind it.
Quick answers
How many SOL does it take to complete the Pump.fun bonding curve?
By our arithmetic from the published constants, about 85 SOL of net buying, fees aside. The curve starts at 30 virtual SOL and finishes near 115 virtual SOL, when all 793,100,000 curve tokens have been sold.
What market cap does a Pump.fun coin have when the curve finishes?
Around 410 SOL on the 1 billion supply. The dollar figure depends on the SOL price that day, so quoted numbers like $69k drift over time.
Is the Pump.fun progress bar based on SOL or tokens?
The complete field depends on real token reserves reaching zero, so progress is best read as tokens sold out of 793.1 million. Early on that runs well ahead of SOL raised.
Can a coin go backwards on the bonding curve?
Yes. Every sell returns tokens to the curve and lowers price, market cap and progress by the same formula that raised them. Only after completion does the coin leave the curve for good.
Who triggers the migration to PumpSwap?
Anyone can. The migrate instruction is permissionless once the curve is complete, and running it again on a migrated curve does nothing.
Do volume runs push a coin along the bonding curve?
Only the net buying part does. Balanced buys and sells add activity and unique wallets but leave progress roughly where it was, apart from fees.
Put this into practice
Drop your mint into the console, set wallets and volume, and the fee is shown before anything is sent. One flat 1% of the goal, no wallet link required.
