Where launchpad liquidity ends up after graduation

The pool a launchpad deposits into is a product decision rather than a technical inevitability, and it decides the depth, the routing and the fee behaviour a token wakes up with. This note sorts the destination types in use on Solana, explains what each does to the first hour after graduation, works an illustrative depth comparison, and gives a procedure for verifying where a specific token actually landed.

Question
Where does launchpad liquidity go when a token graduates
Short answer
Into one pool on one program, chosen by the venue as a product decision
Types in use
Native AMM, general-purpose AMM, concentrated design, hybrid
Values
The destination is an operator-set parameter and has been changed
Out of scope
Any prediction about how a token trades after it lands

When a Solana launch graduates, the accumulated reserve is deposited into one pool on one program, and the venue chose which. Four destination types are in use: a launchpad-native automated market maker, a general-purpose one, a concentrated design, and hybrids that combine them. The choice sets the depth, the routing behaviour and the fee treatment a token wakes up with.

The destination is a product decision

There is nothing technically necessary about any particular destination. A migration routine is a program instruction that creates a pool and deposits into it, and the program it calls is whatever the venue wrote into the instruction. Venues have written different ones, and several have changed the one they write.

Understanding the destination as a decision rather than as physics changes how it should be evaluated. A venue that deposits into its own AMM keeps the fee stream and the relationship. A venue that deposits into an established third-party AMM buys immediate routing and integration for its tokens. Both are reasonable business choices and they produce different experiences for a graduated token.

It also explains why the destination changes. When the calculation shifts - because the venue builds its own AMM, or because a partner's terms change - the parameter is edited and future graduations land somewhere else. Tokens already graduated stay where they were sent, which is how a single venue ends up with tokens spread across several destinations.

The four destination types

Destination types for graduated launchpad liquidity on Solana, and what each implies for the token.
TypeDepth profileRoutingTypical rationale
Native AMMConstant product, uniform across all pricesDepends on how widely the venue's own program is integratedThe venue retains the fee stream and the user relationship
General-purpose AMMConstant product, uniform, well understoodImmediate, because routers already index the programInstant integration without building an exchange
Concentrated designDeep inside a chosen range, empty outside itSupported by major routers but harder to reason aboutCapital efficiency; more depth from the same deposit
Hybrid or stagedVaries; sometimes seeded in stagesWhatever the underlying programs supportControl over the first hours of secondary trading

General-purpose destinations are the easiest case to reason about because their behaviour is documented and stable; the pool programs and their fee tiers are set out by operators such as Raydium. Native destinations are the case where a venue's incentives and a token's interests can quietly diverge, and the divergence shows up as routing lag rather than as anything dramatic.

What the destination does to depth

Depth is how far an order moves the price, and it is the property a freshly graduated token is most immediately judged on. Two pools seeded with identical assets can have wildly different depth at the current price if one of them concentrates its liquidity into a range.

On a constant product pool the relationship is simple and unforgiving: the reserves are spread across every possible price, so the depth near the current price is a small fraction of the total value deposited. A large order eats into it quickly, and the price impact of a given order size is computable directly from the reserves.

This is why the migration deduction described elsewhere in this ledger matters more than its size suggests. A retention of a few per cent of the reserve is a few per cent less depth at every price forever, and depth compounds into everything a token is judged on afterwards: the price impact of an ordinary purchase, the spread a router quotes, and whether a moderately sized order looks like a market event or like a routine trade.

On a concentrated design the same deposit placed into a narrow band around the opening price produces far more depth where trading actually happens, and none at all outside the band. That is excellent while price stays in range and abrupt when it does not. For a token whose first hour is unpredictable by construction, the range choice is a genuine risk decision and it is made by whoever seeded the pool.

Burned, locked or simply held

Depositing into an automated market maker mints a position representing a claim on the reserves. The migration routine produces one, and what it does with it is the single most consequential thing to verify about any graduation.

  • Burned. The position is destroyed, so no account can withdraw the underlying reserves. The liquidity is permanently committed and this is verifiable from the chain without trusting anyone's statement.
  • Locked. The position is transferred into a program that will not release it until a condition or a date. Verifiable, but only as strong as the locking program and the terms written into it.
  • Held. The position sits in an ordinary account. Whoever controls that account can withdraw the reserves at any time. Sometimes this is deliberate and disclosed; sometimes nobody checked.
  • Split. Part burned, part retained. Common enough to be worth checking for specifically rather than assuming the answer is uniform.

All four are ordinary outcomes and all four are readable. A claim about liquidity that has not been checked against the position is not a fact about the token; it is a report of something somebody said.

Routing and who indexes what

A pool being live and a pool being routable are different states, and the gap between them is where a great deal of post-graduation confusion lives. Routers build a graph of pools they know about and quote paths through it; a pool they have not indexed is simply not in the graph.

Indexing depends on the program. A destination on a widely integrated program is normally picked up promptly, because the router already watches that program for new pools. A destination on a newer or narrower program may require explicit support, and until that support exists the token is tradeable by anyone who addresses the pool directly and invisible to everyone using an aggregator interface.

The behaviour of routers is documented by the router operators themselves; the interfaces and coverage model are described in the Jupiter developer documentation. The practical point for a launching team is that the destination decision is also a decision about how quickly the token becomes visible to the majority of Solana traders, who reach markets through routers rather than through pool addresses.

Same deposit, two pool designs

Illustrative arithmetic

Invented figures describing no real pool. A migration deposits 60 units of quote asset and a matching token allocation, giving an opening price of 1 unit per hundred tokens on both designs.

On a constant product pool, an order of 6 units - a tenth of the quote reserve - moves the price by roughly the same proportion the reserve changed, so the buyer's average fill is materially worse than the pre-trade quote and the post-trade price is visibly higher. The impact is computable exactly from the reserves and is the same whoever trades.

On a concentrated design where the entire 60 units is placed in a band of plus or minus 20 per cent around the opening price, the same 6 unit order faces far more depth. Its average fill sits much closer to the quote and the price moves less. Inside the band the token looks like a far better market.

Now push the order to 30 units. The constant product pool absorbs it with a large but continuous price move. The concentrated pool exhausts its band, and beyond that boundary there is nothing at all: the price gaps to wherever the next liquidity is, if any exists.

Same deposit, two markets. One is uniformly mediocre and never surprises anybody. The other is excellent within a range chosen by someone else and discontinuous outside it. Neither is the right answer in general, and the figures are invented; the difference in behaviour is not.

Second pools and permissionless creation

Pool creation on Solana is permissionless. Once a mint exists anybody can create a pool for it on any AMM by depositing both sides, which means the venue's chosen destination is the first pool rather than the only one.

For a token that attracts attention this happens routinely, and it is usually benign: arbitrage keeps prices across the pools roughly aligned, and additional venues improve routing. It is also the mechanism behind a specific hazard, because a pool for a different mint with the same name and symbol is equally easy to create and equally indistinguishable on a screener row.

The defensive habit is to verify by mint rather than by name. Teams that produce activity across several venues run into the same requirement from the other direction, because a Raydium volume bot pointed at a pool address rather than at a verified mint will keep working perfectly on a pool that has nothing to do with the token it was bought for.

Fee accrual after the handover

The destination charges its own fee per swap, and that fee belongs to the AMM rather than to the launchpad. It is normally split between liquidity providers and a protocol share, in proportions the AMM sets.

This produces a question teams rarely ask before graduation: who receives the provider share of fees on the migrated liquidity? If the position was burned, the fees accrue to a position nobody can claim, and the treatment depends on the AMM design - on some, fees accumulate into the reserves and effectively benefit remaining providers; on others they are stranded. If the position was locked, the terms of the lock decide. If it was retained, whoever holds it collects.

None of this is hidden and almost none of it is prominent. It is a consequence of two independent design choices - the AMM's fee model and the venue's position handling - meeting at migration, and it is worth an explicit answer before a team makes any public claim about what happens to trading fees.

Verifying where a token actually landed

  1. Find the migration transaction by walking the mint's recent history in Solana Explorer to the point where the curve was marked complete.
  2. Read which program created the pool. The invoked program id is the destination and is the fact everything else depends on.
  3. Record the pool address as it appears in the transaction, in full, and store it somewhere your team can paste from.
  4. Confirm the pool holds your mint by opening its token accounts and comparing addresses character for character rather than matching a ticker.
  5. Read the deposit amounts and compare them with the curve reserve immediately before migration; the difference is whatever the venue retained.
  6. Trace the provider position to a burn, a lock program or a holding account, and write down which of the three it was.
  7. Request a router quote for the mint and check whether the route passes through the pool you just verified. If it does not, the destination is not indexed yet and that is a timing problem rather than a mistake.

Destinations get changed

The destination is a parameter, and parameters get edited. A venue that built its own AMM has a strong reason to send future graduations there instead of to a third party, and at least one widely used venue has changed its destination during its operating life.

The consequence for anyone maintaining tooling is that a venue cannot be characterised once. Two tokens from the same launchpad, graduated months apart, can sit on entirely different programs with different account layouts and different fee models. Any integration written against the assumption of a single destination per venue will break silently the first time the parameter changes, which is a strong argument for keying against verified mints and reading destinations per token rather than per launchpad. That reasoning is followed through in the note on what changes if you switch.

What the destination does not decide

It does not decide whether the token trades. Depth is a property of the pool; participation is a property of the world, and a deep pool with nobody in it is a common and entirely ordinary outcome.

It does not decide the price. The opening price is the ratio of what was deposited, and everything after that is decided by whoever turns up. A generous destination and a thin one both start wherever the deposit put them.

It does not decide whether liquidity is safe. That is the provider position question, which is independent of destination type. A burned position on an obscure program is more provably committed than a retained position on a famous one, and only one of those two facts is visible on a screenshot.

Questions this desk is asked

Who decides where a graduated token trades?

The launch venue decides where the primary liquidity is deposited, because the migration routine names the destination program. It does not decide where the token trades permanently, because pool creation on Solana is permissionless and anybody can open a second pool for the same mint elsewhere. The venue sets the starting point; the market decides what happens to it.

What is a liquidity provider position and why does it matter here?

Depositing two assets into an automated market maker mints a position representing a claim on those reserves. Whoever holds it can normally withdraw the underlying. At migration the routine creates such a position, and what it then does with it - burn it, lock it, or leave it in an account - is the difference between liquidity nobody can remove and liquidity somebody can.

Does a bigger deposit mean a better market?

It means a deeper one, which is not the same thing. Depth determines how far a given order moves the price, so a larger deposit produces better fills for the same order size. It says nothing about whether anybody wants to trade the token. A deep pool with no participants and a thin pool with many are both common and are different problems.

Why do some graduated tokens not show up in aggregators immediately?

Because aggregators index programs and pools on their own schedules. A pool exists from the slot it was created in, but a router has to discover it, validate it and add it to the graph before it will quote a route through it. If the destination is a newer or less widely integrated program, that lag is longer, and during it the token is tradeable directly and unroutable through the surfaces most people use.

What is the difference between a constant product pool and a concentrated one?

A constant product pool spreads liquidity across the entire price range, so there is always depth at every price and it is thin everywhere. A concentrated design lets liquidity be placed within a chosen range, giving far more depth inside that range and none outside it. For a freshly graduated token the practical consequence is that the same nominal deposit can feel completely different depending on where the range was set.

Can liquidity be removed after graduation?

Only if the provider position still exists and somebody controls it. If the migration routine burned the position, the underlying reserves are permanently committed and no one can withdraw them, including the venue. If it locked the position, they are committed until the lock expires. If it left the position in an account, whoever holds that account can withdraw. All three are readable from the chain.

Does the destination affect trading fees?

Yes. The pool charges its own fee per swap, set by the AMM and its fee tier rather than by the launchpad, and it is a separate charge from anything the venue applied during the primary phase. Different destinations use different fee tiers, and on concentrated designs the effective cost also depends on where liquidity is positioned relative to the current price.

Filed under Mechanics by The Launchpad Ledger Desk. Venue behaviour described here was read from public documentation or from accounts and transactions anyone can open in a block explorer. Fees, thresholds, curve constants and graduation destinations are operator-set parameters that have been changed before and will be changed again, so this page names the parameter rather than printing a value; check the current one against the venue on the day you need it. The standard is set out in what this desk does.