Skip to content
Curve Campaign

Early curve activity: what a small reserve does to every parameter

The bottom of a curve is the only phase where the size band is squeezed hard from both directions at once. Costs make small trades pointless and a shallow reserve makes large ones self-defeating, and the gap between the two is narrower than most default configurations assume.

Phase note The Curve Campaign Desk 2629 words 12 min read Updated 13 August 2026
Phase P1, the shallow end of the curve, before the reserve has grown meaningfully.
Dominant field Swap size, held between a cost floor and an impact ceiling that are close together.
Second field Interval, because trade count is high and the cadence is easy to read.
Ends when The reserve has grown enough that the early ceiling stops binding the band.

Early curve activity is a squeeze on swap size from two directions. Transaction costs put a floor under how small a trade can usefully be, a shallow reserve puts a ceiling on how large it can be before the fill moves the quote against the next one, and at the bottom of a curve those two limits sit closer together than at any later depth. Everything else in the early block - interval, wallet count, the buy and sell mix - is derived after the band, because the band is what the depth actually constrains.

What early means in mechanism terms

Early is not a clock reading. A launchpad token prices trades against a reserve the program holds, and the quote moves with every fill, so the phase is defined by how much is sitting in that reserve relative to the trade you intend to send. A token that fills a large part of its curve in twenty minutes has left the early phase in twenty minutes, and a token that sits still for a day is still in it a day later.

Describing the phase properly means writing one sentence about the ratio rather than about the price. A trade of your intended size represents some share of the reserve in front of it. When that share is large enough that your own fill visibly changes the next quote, you are in the early phase, and the early block applies. When it is small enough that a single fill is lost in the mechanism, you are not, whatever the token's age.

The exact constants that shape a launchpad curve belong to the program that implements it, and they differ between launchpads and between versions. This desk does not print them, because a constant copied from a blog post and applied to a different program is worse than no constant at all. Read them from the launchpad you are actually on, and if they are not published, derive the ratio empirically from the quotes you can observe.

The cost floor: where a trade stops being worth sending

Every fill carries costs that do not scale with its size. There is the base network fee for the transaction, the priority fee offered for inclusion, and whatever the mechanism itself charges on the swap. The first two are close to fixed per transaction; only the third moves with notional size. That asymmetry is the entire reason a floor exists.

The floor is where those fixed costs stop being a rounding error against the trade. Where exactly that sits is a judgement, and it depends on your own tolerance and on network conditions at the time, which is why this page will not print a number for it. What it will say is that the calculation has to be done with the fee assumptions you are actually operating under, and redone when conditions change, because a floor derived on a quiet network is not a floor on a congested one.

Fees on Solana are denominated in lamports, and one SOL is a billion of them, which is why fee arithmetic on this chain routinely deals in numbers that look like noise until they are multiplied by a trade count in the hundreds. The unit definitions and the fee model are set out in the Solana documentation rather than being properties of any tool, and reading the fee section once is worth more than any rule of thumb.

The impact ceiling: where a trade trades against itself

The ceiling is the other end, and it is the one that surprises people at this depth. On a curve, a buy moves the quote up for whatever comes next, including your own next buy. A campaign that sizes trades against its budget rather than against the reserve will spend a meaningful share of its allocation buying at levels it created a few seconds earlier.

The effect compounds when the interval is short. Ten oversized fills a minute apart against a shallow reserve produce a staircase, and each step is paid for by the campaign that built it. The same ten fills at a size appropriate to the depth produce a record that costs less and reads more plausibly, and the difference is entirely in the derivation.

Where the ceiling sits is a function of how much movement per fill you are willing to accept, which is a decision the plan has to state. Some objectives genuinely want visible movement and will accept paying for it. Most do not, and have never written down which they are. Writing that sentence down is what converts the ceiling from a vague worry into a number.

Worked arithmetic: locating the band

The figures below are illustrative arithmetic, chosen to show the shape of the calculation. They describe no real token and no real launch.

Illustrative only

Assume fixed cost per fill, base plus priority, of 0.0004 SOL.

Rule the plan writes down: fixed cost must stay under 1 percent of notional.

Floor: 0.0004 / 0.01 = 0.04 SOL per trade.

Assume the reserve in front of the trade is 30 SOL.

Rule the plan writes down: no single fill may represent more than 0.5 percent of the reserve.

Ceiling: 30 x 0.005 = 0.15 SOL per trade.

Band: 0.04 to 0.15 SOL. Average taken as 0.09.

Phase allocation of 9 SOL therefore buys roughly 100 fills, and 100 fills carry 0.04 SOL of fixed cost in total.

Two things are worth noticing in that block. The first is that both ends came from rules the plan wrote down, not from anywhere else; change the one percent or the half percent and the band moves, which is honest, because those tolerances are genuinely a choice. The second is that the band is narrow. A factor of under four separates floor from ceiling, and a default configuration that draws sizes from a much wider range will spend part of its time below the floor and part above the ceiling.

Now watch what happens when the reserve triples to 90 SOL while the fee assumption stays put. The floor does not move: 0.04 SOL. The ceiling moves to 0.45. The band has widened from a factor of under four to a factor of over eleven, and the average size the campaign should be drawing has roughly tripled. That is the early-to-mid handover expressed in one line of arithmetic, and it is why the block is re-derived rather than carried.

Interval at the bottom of a curve

Trade count is highest in the early phase, because the size band is lowest, and a high trade count means the interval is short. A short interval is the easiest thing in the world to read badly: fills arriving at a near-constant gap look exactly like fills arriving at a near-constant gap, and no amount of size variation hides a clean cadence.

The derivation is the same at every depth. Phase allocation divided by average size gives the trade count. Phase length divided by trade count gives the base interval. What changes early is that the base interval is small enough that jitter has to be a meaningful proportion of it rather than a token few seconds, and that the tail of the distribution matters: the gaps a reader notices are the shortest ones, not the average one.

Two habits help. Draw intervals from a distribution with a wide enough spread that consecutive gaps are rarely similar, and let the pattern have quiet stretches rather than filling every minute of the phase. A phase that is busy for two thirds of its window and quiet for the rest costs the same and reads differently, and which of those two the objective wants is a decision that belongs in the block.

Wallets in the first hours

Because trade count peaks early, a fixed per-wallet ceiling produces the widest wallet set of the whole campaign in exactly the phase where the campaign has done the least. That is an overhead the plan should meet deliberately rather than discover. Every account has to be created, funded, and left holding a balance the runtime requires it to retain in order to stay alive.

That retained balance is the part most often missing from an early budget. It is not a fee and it does not disappear, but it is not spendable either, and multiplying it by a wide account set produces a real number. The mechanics are defined in the Solana program documentation, and the practical effect is that the spendable part of an early allocation is smaller than the allocation.

The lever is the per-wallet ceiling rather than the count. Raising the ceiling narrows the set and concentrates the record; lowering it widens the set and raises overhead. Both are legitimate, neither is free, and the block should carry the ceiling with a one-line reason next to it so the choice can be argued about at the close.

The buy and sell mix while the reserve is small

On a curve the direction of flow is also a decision about where the quote ends up, and early on that decision has more leverage than it will ever have again. A one-directional early phase moves the quote further per SOL committed than the same flow later, and it leaves the campaign holding whatever position it created.

A fully balanced round trip has the opposite problem: it pays costs in both directions to arrive back where it started, and at a depth where the spread per fill is proportionally largest, that is the most expensive place to do it. The mix is therefore a genuine trade-off rather than a default, and it should be stated as a ratio in the block with a sentence explaining what the ratio is for.

What the desk will not do is tell you which ratio to use. That answer depends on what the campaign is for and on what the operator is willing to hold, and any page that prints a number here is inventing one. What it will say is that a mix left unstated becomes whatever the tool defaults to, and defaults are not decisions.

What an early record actually shows

Early phase: what a reader can see, and what the block controls
Visible in the recordField that produces itCheap to changeExpensive to change later
Fill sizes clustered in a narrow bandSize band and its distributionYes, before the phase startsThe record already written cannot be edited
Regular gaps between fillsInterval and jitter policyYes, jitter is a configuration valueA metronome in the first hours is what a reader remembers
A small set of accounts repeatingPer-wallet ceilingOnly before fundingAdding accounts mid-phase changes the funding pattern visibly
Directional pressure on the quoteBuy and sell mixYes, the ratio is a fieldThe position created has to be dealt with either way
Funding arriving from one placeWallet set policy, not a phase fieldNo, it is decided before the campaignRestructuring mid-campaign reads as two operators

The column worth dwelling on is the last one. Almost everything visible early is cheap to change before the phase and impossible to change after it, because the record is written as the phase executes. That asymmetry is the argument for doing the derivation properly in a phase that only lasts a few hours: the hours are short, the record they produce is permanent.

Priority fees and unlanded transactions

A plan that assumes every transaction lands is a plan whose pacing curve on paper will not match the record on chain. Transactions compete for inclusion, the offer is made per transaction, and an offer that was adequate an hour ago may not be adequate now. Early phases feel this more than later ones because they send the most transactions.

The failure is asymmetric in an unhelpful way. Offering too little produces gaps that were never planned, and those gaps land wherever congestion happened rather than where the pacing pattern wanted them. Offering too much produces a fee line that grows faster than the flow it protects and quietly rewrites the cost per swap the band was derived against. The block should state a policy for both directions rather than a single number.

The practical minimum is a stated policy, a way of observing the landed rate during the phase, and a rule for what happens if the rate falls below what the derivation assumed. Choosing an execution layer that manages this automatically is one legitimate answer, and a volume bot for Pump.fun launches that adjusts its offer against observed conditions removes a class of drift the operator would otherwise have to watch by hand. Whichever way it is handled, the plan should say which.

The early curve checklist

  • The depth is described as a ratio between intended trade size and the reserve in front of it.
  • The floor was derived from an explicit rule about fixed cost as a share of notional.
  • The ceiling was derived from an explicit rule about movement per fill.
  • The band between them is narrow, and the configured range does not extend past either end.
  • Trade count was computed from allocation and average size, and the fixed cost of that count is in the budget.
  • The interval came from trade count and phase length, with jitter set as a proportion rather than a token.
  • The per-wallet ceiling is written down with a reason, and retained balances are a budget line.
  • The buy and sell mix is stated as a ratio with a sentence explaining it.
  • A priority fee policy exists for both the too-low and the too-high failure.
  • The exit condition is written and refers to the state of the reserve, not to the clock.

Writing the exit condition for phase one

Phase one should end because the mechanism changed, not because the operator got bored or the allocation happened to run out. The cleanest condition is a depth condition: the reserve has grown to the point where the ceiling that was binding the band no longer binds it, which means the band is due to be re-derived and the mid-curve block takes over.

An allocation condition is the fallback, and it should be written as a separate line so the close can tell the two apart. A phase that ended on depth did what it was designed to do. A phase that ended on allocation ran out before the state changed, which is useful information about the split and should feed the next campaign rather than being lost.

Both conditions need to be checkable by someone else. "When it feels like it has run" is not a condition. "When the reserve has roughly tripled from the level recorded at the start of the phase" is, and the level recorded at the start is one of the four lines the phase writes down anyway.

What early activity does not do

An early phase does not decide what a token becomes. It produces a record over a short window against a shallow mechanism, and the campaign that follows has to justify itself on its own terms. Treating the first hours as a foundation that later phases inherit is how allocations get spent early and transitions arrive underfunded.

It also does not make a record look unplanned. A narrow band derived correctly still produces sizes inside a narrow band, and the cadence is still whatever the interval policy produced. Improving the derivation improves the cost and the coherence of the run; it does not remove the signature, and no parameter on this page claims to.

Finally, it does not survive contact with a changed reserve. Everything in the early block is a function of a depth that the block itself is actively changing, which is the strangest property of this phase and the reason it is the shortest-lived. The block is correct for as long as the state it was derived against holds, and the exit condition exists because that will not be long.

The same questions, asked at this depth

How small is too small for an early trade?

Too small is where the total cost of sending the transaction stops being a rounding error against the trade itself. That is arithmetic you do with your own fee assumptions rather than a published threshold, and the answer moves with network conditions.

How large is too large at the bottom of a curve?

Too large is where a single fill moves the quote enough that your own next trade is priced against a level you created. On a shallow reserve that point arrives at a much smaller absolute size than most operators expect.

Should the early phase use more wallets or fewer?

Trade count is highest here, so a fixed per-wallet ceiling produces the widest set of the whole campaign. That is a real overhead cost, and it is why the ceiling is worth setting deliberately rather than inheriting.

Does a fast curve change the early block?

It shortens it rather than changing its shape. The block is defined by the state of the reserve, not by the clock, so a curve that fills quickly simply means phase one ends sooner and the handover check happens earlier.

Is the early phase where most of the budget should go?

That depends entirely on what the campaign is for, and the split has to be written down before the run. What the desk will say is that funding the early phase from the migration allocation is the one direction of borrowing that has no way back.

Why does the same size feel different an hour later?

Because the reserve grew. Impact is a function of trade size relative to what the mechanism is holding, so a constant size produces a shrinking effect as the curve fills. That is the whole reason the band is re-derived rather than carried forward.

Filed under Phases and written by The Curve Campaign Desk. Ranges on this page exist to show which direction a trade-off runs; the phase decides the value, and every figure inside a worked block is illustrative arithmetic that describes no real token. What this desk does and does not cover is set out on the desk page.

Read next