Graduation rules compared across Solana launchpads

Every launch venue has to declare its primary phase finished somehow, and the rule it uses shapes the final stretch far more than most teams anticipate. This note separates the four condition types in use on Solana, explains why the unit of measurement is the whole argument, works an illustrative comparison of one threshold against two curves, and sets out how to watch a condition approach using public data alone.

Question
How do launchpads decide when a primary phase is finished
Short answer
Four condition types, and the unit matters more than the number
Types in use
Reserve target, supply target, time window, manual trigger
Values
Thresholds are operator-set parameters and have been revised
Out of scope
Predicting whether or when any particular token graduates

A graduation rule is a condition the launch program tests before it will end the primary phase. Four types are in use on Solana: accumulated quote reserve, share of supply distributed, elapsed time, and a manual trigger held by an operator. The type matters more than the number, because the type decides what a token looks like at the moment it graduates.

What a graduation condition is

Mechanically it is a comparison. The launch program holds a curve account, the account holds state that changes with every trade, and somewhere in the program is a check that compares one field of that state against a threshold. When the comparison passes, the curve stops accepting trades and the migration path becomes available.

That is the whole of it. There is no judgement involved, no assessment of the token's quality, and no discretion unless the venue deliberately built discretion in. A token graduates because a number crossed another number, and the widespread habit of reading graduation as an endorsement is the most common misunderstanding this desk encounters.

The condition also has a second job that is easy to miss: it caps the primary phase. Without one, the curve would keep quoting prices forever and the token would never acquire an ordinary market. The threshold is therefore not only a bar to clear; it is the definition of when the launch product stops being the market.

The unit is the whole argument

Two venues can quote graduation thresholds that sound comparable and mean entirely different things, because the unit differs. A threshold denominated in accumulated quote asset triggers on money raised. A threshold denominated in share of supply distributed triggers on tokens sold. On a steep curve those two events happen at very different points.

Consider what each implies. Meeting a reserve target on a steep curve can happen while a large share of the supply is still held by the program, because the later tokens are expensive and a modest number of them raises a lot. Meeting a supply target on the same curve requires distributing all those expensive tokens, which takes far more capital. Same curve, same venue, radically different launch depending on which unit the threshold uses.

This is why cross-venue threshold comparisons are close to meaningless unless the curve is specified alongside. A team that hears one venue's threshold is lower than another's has learned nothing until it knows what the two are measuring and what functions sit behind them, a point developed further in the note on how launchpad curves differ.

The four condition types

Graduation condition types in use on Solana launch venues, and what each does to the shape of a launch.
TypeMeasuresFinal stretch behaviourMain weakness
Reserve targetAccumulated quote asset in the curvePredictable, visible, and races as the gap closesSupply distribution at trigger depends entirely on the curve
Supply targetShare of the token supply distributedSlows near the end because late tokens are expensiveCapital required is much larger on a steep curve
Time windowElapsed time since creationDeadline dynamics, activity clustering at the closeCan complete with almost nothing raised
Manual triggerAn operator decisionUnpredictable by designRequires trusting whoever holds the authority

Hybrids exist. A venue can require a reserve target within a time window, or a supply target with a manual override, and each combination inherits the weaknesses of both parts. The useful question when reading a new venue is not which type it uses but what it does when the condition is nearly met and stalls.

What the last stretch feels like

Under a reserve target the gap is visible and shrinking, which produces a race. Everyone watching can compute how much quote asset is still required, and the last portion tends to be filled quickly by participants who want to be positioned before the venue changes. That is a mechanical consequence of publishing a countdown, not a claim about anyone's intentions.

Under a supply target the final stretch does the opposite. The remaining tokens are the most expensive ones on the curve, so each additional unit of quote asset moves the completion measure less than the one before it. Launches under supply targets often appear to stall near the end when nothing has changed except the arithmetic.

Under a time window, activity clusters at the close for the same reason activity clusters before any deadline. Under a manual trigger there is no observable pattern at all, which is precisely the complaint most often made about the design and the reason it is rare on permissionless venues.

One threshold, two curves

Illustrative arithmetic

Invented figures describing no real venue. Two launches share a graduation condition of 80 units of accumulated quote asset. Launch A runs on a constant product curve with a virtual quote reserve of 30 units; launch B runs on one with a virtual reserve of 10.

Under constant product the token reserve falls in proportion to how much the quote reserve grew. Launch A's quote side goes from a notional 30 to a notional 110, so its token reserve is reduced to roughly 27 per cent of its starting amount and about 73 per cent of the supply has been distributed at the trigger.

Launch B's quote side goes from a notional 10 to a notional 90, so its token reserve is reduced to roughly 11 per cent and about 89 per cent of the supply has gone out. Same threshold, same money raised, sixteen percentage points more of the supply distributed on B.

Now flip it. If both venues had used a supply target of 80 per cent instead, launch A would have needed considerably more than 80 units to reach it and launch B considerably less. The threshold number is identical in both framings; the launches are not.

The figures are invented and the mechanism is not. A threshold without its curve is an incomplete statement, and comparing two venues on threshold alone compares nothing.

The boundary trade and partial fills

The transaction that satisfies the condition is an ordinary transaction. It lands in a slot, it changes the curve state, and from that point the curve stops accepting trades. Everything submitted moments before it, and evaluated after it, fails.

Venues handle the boundary trade differently and the difference is worth knowing. Some fill the portion of the order that fits within the remaining curve capacity and refund the rest, which means the final buyer receives less than they asked for and a partial refund they may not have expected. Others reject any order that would exceed the threshold, which means the final buyer receives nothing and pays only the network fee.

There is a second-order effect worth naming. Where a venue rejects overshooting orders, the final gap can only be closed by an order sized to fit it, which means the last participants are competing to compute the remaining capacity accurately rather than to bid the most. Where a venue partially fills, size is an advantage again because a large order captures whatever is left. Two implementations of the same idea, two entirely different final minutes, and neither venue describes it as a design choice.

Neither behaviour is a fault and both surprise people. If a launch matters enough to be watching the boundary, it matters enough to have read which of the two the venue does, because the difference determines whether a large final order gets a strange fill or no fill at all.

Condition met, migration not run

A condition being satisfied and the migration routine having executed are two separate events, and on several venues they are two separate transactions. Between them the token is in a state that catches out almost everything: the curve will not trade, and the pool does not exist yet.

The gap is usually short and is not always short. Migration may be executed by a keeper process, and keeper processes queue, fail and retry like anything else. A congested network lengthens the gap. A failed attempt lengthens it further. During that window every interface will show something, and what each one shows depends on which state it happened to read.

Anything that measures or produces activity is affected here, because the venue it was configured against has stopped and its successor has not started. Teams running a SOL volume bot through a graduation should expect this window to exist, plan for the tooling to be re-pointed rather than to continue automatically, and treat a silent period as the expected outcome rather than as a defect.

Manual triggers and time windows

A manual trigger is a privileged instruction that some account can call to end the primary phase. It exists on venues where the launch is curated, attached to an identity, or part of a structured raise rather than a permissionless free-for-all. Its honest description is that graduation timing is a decision somebody makes.

That is not automatically bad. A curated venue that ends a phase deliberately can coordinate the destination pool, the announcement and the liquidity treatment in a way an automatic trigger cannot. It does mean a participant is relying on the holder of that authority, and the authority is visible on chain if anyone bothers to look for it.

Time windows have the opposite property: entirely predictable, entirely indifferent to outcome. A window can expire with a curve that raised almost nothing, and the venue then has to decide what happens - migrate anyway with minimal depth, refund, or leave the token stranded. That decision is a venue policy, it is rarely prominent in the documentation, and it is worth finding before it applies to you.

Watching a condition approach

  1. Find the curve account for the token by opening a recent primary trade in a block explorer and identifying the account whose state the instruction modified.
  2. Identify the field the condition reads. Usually the accumulated quote reserve or a distributed-supply counter, alongside a boolean completion flag.
  3. Read the account directly rather than through a third-party progress bar, which is a cached derivative and can be several slots stale during a fast finish.
  4. Compute the remaining gap yourself and check your computation against the venue's own display once, to confirm you are reading the right field.
  5. Watch for the completion flag rather than for the number, because the flag is what the migration path actually tests, as described in the account model conventions at the Solana program library documentation.
  6. When the flag flips, look for the migration transaction in Solana Explorer and record the destination pool address the moment it exists.
  7. Re-point anything that was configured against the curve before assuming it is still working, because it is not going to tell you that it stopped.

What graduation is not

  • Not an endorsement. It is a threshold comparison with no assessment of anything.
  • Not a guarantee of liquidity. What reaches the pool depends on the migration deduction, not on the threshold.
  • Not a change of token. The mint is unchanged and every balance recorded against it survives untouched.
  • Not instantaneous. Condition satisfied and pool created can be separate transactions minutes apart.
  • Not comparable across venues without the curve, because the unit and the function together define the event.
  • Not a reason to expect anything about price, which is set afterwards by an entirely different equation.

All of this is a setting

Every threshold described here is a value held by whoever operates the venue. Several venues have revised theirs, and at least one widely used venue has revised both its threshold and its destination since it began operating; its current material is published at its own site and is the only authority on what it does today.

The practical consequence is a habit rather than a fact. When a threshold matters to a decision, read it from the venue on the day, then confirm the venue behaves as documented by opening a recent graduation and checking what actually happened. Documentation describes intent; the transaction describes behaviour, and only one of those two is binding.

The comparative consequence is that this ledger will not print a threshold. Not because the numbers are secret, but because a page that printed them would silently become a misleading document the first time somebody changed one, and that failure mode is worse than the mild inconvenience of sending you to the source.

Questions this desk is asked

What does it mean when a token graduates?

It means the launch venue has decided the primary phase is over, stopped the curve from accepting trades, and moved the accumulated liquidity into a market venue such as an automated market maker pool. The token itself does not change; the mint is the same address it always was. What changes is the mechanism that prices it, from a program-held function to a pair of pool reserves.

Is there a standard graduation threshold on Solana?

No, and there could not be, because the threshold is a parameter each venue sets for itself and expresses in a unit of its own choosing. Some measure accumulated quote asset, some measure the share of supply distributed, and the two are not comparable without knowing the curve that sits behind them. Any figure quoted as the standard is a snapshot of one venue at one moment.

Why do some tokens never graduate?

Because the condition is never satisfied. A reserve target requires a certain amount of quote asset to accumulate, a supply target requires a certain share of the tokens to be distributed, and most launches on a high-volume venue simply never get there. That is not a malfunction of the venue; the condition existing means most launches will fail to meet it, which is the point of having one.

Can a launch graduate and then fail?

Graduation says nothing about what happens afterwards. It is a mechanical event triggered by a threshold, not an assessment. A token can meet the condition and then trade in a pool that nobody uses, and a token that never meets the condition can have a perfectly successful primary phase by the measure its team cared about. Treating graduation as a verdict is a category error.

What happens to buy orders that arrive as the condition is met?

The transaction that satisfies the condition is a single transaction, and everything after it is evaluated against a curve that no longer accepts trades. Transactions submitted in good faith moments earlier can fail for that reason, which is a normal outcome rather than an error. Some venues partially fill the boundary trade and refund the remainder; others reject it outright.

How long does migration take after the condition is met?

That is a venue decision and it varies. Some venues run the migration routine immediately in the same transaction flow; some run it as a separate transaction that a keeper submits; some impose a deliberate delay. During any gap the token has finished its primary phase and has no pool, which is a real state that catches out anything assuming continuity.

Can I tell how close a token is to graduating?

Yes, if you read the curve account rather than an interface. The account holds the reserves and normally a completion flag, and the condition is a comparison against one of those fields. Progress bars on third-party sites are computed from the same data and are only as current as their last refresh, which during a fast final stretch can be several slots behind.

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.