Curve fees and the cost of one swap
A swap against a bonding curve carries four distinct costs with different shapes. Two are flat and dominate at small size, two scale with notional and dominate at large size, and the cheapest swap sits between them rather than at either end.
One swap against a bonding curve carries four separate costs, and only three of them are fees in the ordinary sense. You pay the Solana base transaction fee, an optional priority fee, a launchpad protocol fee charged on the swap notional, and price impact from moving along the curve. The first two are flat. The last two scale with size. That difference is the whole subject.
People usually reach for a single percentage when they ask what a trade costs. There is no single percentage. The cost of a swap is a curve in its own right, high at very small sizes because flat components dominate, high at very large sizes because impact dominates, and lowest somewhere in the middle. This note works out where that middle sits and why it matters.
The four separate costs on one swap
Before the arithmetic, it helps to see the components side by side, because they behave differently in every respect that matters. Two are fixed per transaction and indifferent to how much you are trading. Two are proportional to notional. One of the five rows below is not a cost at all in the strict sense, since it is refundable, but it belongs in any honest budget.
| Component | What sets it | Behaviour with swap size | Recoverable | Who controls it |
|---|---|---|---|---|
| Base transaction fee | Protocol constant per signature | Flat, unchanged by notional | No | Nobody, it is a network parameter |
| Priority fee | Compute unit price times compute unit limit | Flat per transaction, variable over time | No | You, subject to competition for inclusion |
| Launchpad protocol fee | Published percentage of swap notional | Linear in notional | No | The launchpad |
| Curve price impact | Curve parameters and current reserve | Grows faster than linear | Partly, if the quote recovers | You, through sizing |
| Token account rent | Account size and rent parameters | One-off per mint per wallet | Yes, on closing the account | You, by closing empty accounts |
Read the third column first. The two flat rows are the reason a swap of a hundredth of a SOL can lose a meaningful share of its value before it reaches the curve at all. The two proportional rows are the reason a swap of twenty SOL into a thin reserve is a bad idea no matter how low network fees happen to be at that moment.
The base transaction fee
Solana charges a base fee per signature on a transaction. The constant is 5,000 lamports, and one SOL is 1,000,000,000 lamports, so a transaction signed by a single key costs 0.000005 SOL in base fee. A transaction that requires two signers costs twice that. The fee is charged whether the transaction succeeds or fails, which matters when you are competing for a fill.
That last point is worth dwelling on. A failed swap is not free. If your transaction lands but the swap reverts because the quote moved past your slippage tolerance, you have paid the base fee and the priority fee and received nothing. In fast markets a strategy can lose a real amount of SOL purely to transactions that never executed. The Solana documentation describes the fee model precisely.
The priority fee
The priority fee is what you add on top of the base fee to compete for inclusion. It is the product of two values you set: the compute unit price, quoted in micro-lamports per compute unit, and the compute unit limit you request for the transaction. Because the price is denominated in micro-lamports, dividing the product by one million converts it to lamports.
Both inputs are under your control, but only one of them should be tuned freely. The compute unit limit should approximate what the transaction actually consumes, since requesting far more than you need wastes budget at any price. The compute unit price is the real lever, and its correct value is a market observation rather than a setting: it is whatever the current competition for block space requires.
Priority fee = CU price x CU limit / 1,000,000 lamports
Illustrative: 500,000 micro-lamports x 200,000 CU / 1,000,000 = 100,000 lamports
Priority fee = 0.0001 SOL
Flat cost per swap = 0.000005 + 0.0001 = 0.000105 SOLIllustrative figures for demonstration only.
Note the ratio in that example. The priority fee is twenty times the base fee, and during genuine congestion the multiple can be far larger. Anyone who budgets network cost by looking only at the 5,000 lamport constant is budgeting the smallest of the two flat components and ignoring the one that actually moves. Flat cost per swap is a variable you have to re-measure, not a number you learn once.
The launchpad protocol fee
The launchpad takes a percentage of the swap notional. This is the component that behaves the way people expect a trading fee to behave: it is proportional, it applies to buys and sells alike, and it is deducted from the swap rather than charged separately. Pump.fun has historically published a single flat percentage for curve trades, applied uniformly rather than tiered by size or by volume.
Treat that as a documented arrangement rather than a fixed law. Fee schedules on launchpads are program parameters. They have been revised before, they differ between the curve phase and the post-migration pool, and they differ between platforms competing for the same launches. Any specific percentage you read in an article, including this one, should be confirmed against the protocol before it enters a spreadsheet.
For the arithmetic in this note the protocol fee is set at one per cent of notional. That value is chosen because it makes the mental arithmetic legible, not because it is a claim about what any platform currently charges. Every figure derived from it below is illustrative in exactly the same sense.
Price impact is a cost, not a fee
Price impact is the gap between the quote you saw and the average price you actually received. On a bonding curve it is entirely deterministic: the reserve defines the quote, your buy changes the reserve, and the tokens you receive are priced across the whole path you moved through rather than at the starting point. Nobody collects this amount. It is not paid to anyone.
That is why calling it a fee misleads. A fee leaves your account. Impact is a worse fill, and it is partly recoverable in the sense that if the quote later returns to where you entered, the loss was notional. It is also the only one of the four costs that grows faster than your position, because a larger swap moves further along the pricing function and each additional unit costs more than the last.
The exact shape of that growth follows from the pricing function itself, which is worked through with a step-by-step table in the note on how bonding curve pricing works. For budgeting purposes the useful summary is that impact is negligible on small swaps against a well-filled reserve and brutal on large swaps against an early one.
Account rent as a one-off deposit
Holding an SPL token requires a token account, and accounts on Solana must hold a rent-exempt minimum balance. For a standard token account that minimum is widely documented as roughly 0.002 SOL. It is charged the first time a wallet receives a given mint, not on every swap, and rent parameters are network settings that can be adjusted, so verify the current figure rather than assuming.
The important property is that it is a deposit and not a fee. Closing the token account once the balance is zero returns it. Most people never bother, which means a wallet that has touched two hundred mints has a meaningful amount of SOL immobilised in empty accounts. For anyone running many wallets across many tokens, that idle balance is a real line in the budget rather than a rounding error.
Cost per swap across sizes
The table below applies the components to a range of swap sizes. Three assumptions hold across every row, and all three are illustrative. Flat cost is 0.000105 SOL per swap. Protocol fee is one per cent of notional. Impact is modelled as one per cent per SOL of swap size, which is a simplification chosen for legibility, since a real curve is convex rather than linear.
| Swap size (SOL) | Flat network and priority | Protocol fee at one per cent | Curve impact | Total as per cent of swap |
|---|---|---|---|---|
| 0.01 | 0.000105 | 0.000100 | 0.000001 | 2.06 |
| 0.05 | 0.000105 | 0.000500 | 0.000025 | 1.26 |
| 0.10 | 0.000105 | 0.001000 | 0.000100 | 1.21 |
| 0.50 | 0.000105 | 0.005000 | 0.002500 | 1.52 |
| 1.00 | 0.000105 | 0.010000 | 0.010000 | 2.01 |
| 5.00 | 0.000105 | 0.050000 | 0.250000 | 6.00 |
| 20.00 | 0.000105 | 0.200000 | 4.000000 | 21.00 |
The shape is the finding. Cost as a percentage falls from the smallest row, reaches a minimum around a tenth of a SOL, and then climbs steeply. At the top of the table the swap is paying more than a fifth of its value to move a reserve that cannot absorb it. At the bottom it is paying more than two per cent for the privilege of submitting a transaction at all.
The exact position of the minimum depends entirely on the three assumptions. Raise the priority fee during congestion and the minimum shifts right, because flat cost has grown and needs a larger notional to dilute it. Trade against a deeper reserve and the minimum shifts right as well, because impact has become cheaper. The shape stays the same; only its location moves.
Why the middle is not obvious
Most cost advice pushes in one direction only. Split into smaller orders to reduce impact, or consolidate into fewer orders to reduce fees. Both are half correct. The two forces oppose each other, and the answer is a size range rather than a rule, recalculated whenever congestion or reserve depth changes materially.
Break-even on a round trip
Almost nobody buys without intending to sell, so the number that matters is the round-trip cost. Every component is paid twice, apart from account rent, which is paid once and returned on close. That doubling is what turns a cost that looked tolerable on entry into a price move you have to earn before you are level.
At 0.1 SOL: 2 x 0.000105 = 0.000210
Protocol: 2 x 0.001 = 0.002000
Impact: 2 x 0.0001 = 0.000200
Total = 0.002410 SOL
Break-even move = 0.002410 / 0.1 = 2.41 per centIllustrative figures for demonstration only.
At one SOL the same arithmetic gives roughly 0.0402 SOL of round-trip cost, or a break-even move of about four per cent, because impact has grown with size while the flat component has not. At five SOL the break-even is well into double digits. None of those thresholds is a market prediction. They are simply what the position has to overcome before the trade is worth having made.
This is also the arithmetic that makes fee awareness a discipline rather than a detail. A strategy that expects a two per cent edge per trade does not exist at a two and a half per cent round-trip cost. Working out the break-even first tells you which strategies are arithmetically available to you and which were never available regardless of how well you executed them.
How cost shapes strategy
Two conclusions follow directly from the table, and both contradict common practice. The first is that very small swaps are economically pointless. A swap of a hundredth of a SOL pays a flat cost comparable to its own protocol fee, which means the transaction is buying almost nothing and paying a full transaction's worth of overhead to do it.
The second is that cost, not capital, is the binding constraint on any high-frequency approach. Multiply the per-swap flat cost by the number of transactions and the total is independent of how much notional passed through them. A thousand swaps at the illustrative flat cost consume about 0.105 SOL in network and priority fees alone before a single percentage-based component is counted.
That is the arithmetic to run before configuring any SOL volume bot, because the flat component is charged per transaction whatever notional each one carries. It is also why the swap size setting matters more than the cadence setting: below the size where flat cost stops dominating, every additional transaction is mostly paying for the privilege of being included in a block.
That arithmetic is exactly why activity-generation tooling is a budgeting exercise rather than a technical one, and why the size and cadence settings on such tools matter far more than any other option they expose. The scope and the honest limits of that category are set out in the note on volume tooling on the curve, including how per-swap cost compounds across a wallet set.
Budgeting a swap campaign
- Measure current priority fee levels before you plan anything. Flat cost during congestion can be several times its quiet-period value, and it sets your minimum viable swap size.
- Confirm the launchpad's current protocol percentage against the protocol itself rather than an article, and check whether the pool phase uses a different schedule.
- Estimate impact against the actual reserve, not a generic percentage. The same swap costs very different amounts against an early curve and a nearly filled one.
- Compute the round-trip cost, not the entry cost, and treat it as the minimum move any position must produce to break even.
- Multiply flat cost by the planned transaction count first. If that product alone is uncomfortable, the plan is already too large regardless of notional.
- Add one-off account rent for every new mint and wallet combination, and close empty accounts afterwards to recover the deposit.
- Budget for failed transactions. Fees are charged on failure, and in competitive conditions failures can be a material share of attempts.
One closing caution. Every specific number in this note is either a stated protocol constant or clearly labelled illustrative arithmetic. Fee percentages, rent minimums and prevailing priority fee levels all change, and two of the three change frequently. The reasoning survives those changes; the figures do not, so re-derive them against current conditions before you size anything.
Questions readers ask
What fees do you pay on a Pump.fun swap?
Four costs land on a single curve swap. The Solana base transaction fee, an optional priority fee, a launchpad protocol fee charged as a percentage of the swap notional, and price impact from moving along the curve. Only the first three are fees paid to somebody; price impact is a cost of execution that nobody collects.
How much is the Solana network fee?
The base fee is a protocol constant of 5,000 lamports per signature. One SOL is 1,000,000,000 lamports, so a transaction with a single signer costs 0.000005 SOL in base fee. That figure is independent of swap size. The priority fee is separate, variable and set by the sender.
How is the priority fee calculated?
It is the compute unit price multiplied by the compute unit limit. The price is quoted in micro-lamports per compute unit, so dividing the product by 1,000,000 gives lamports. Both inputs are set by the sender, and the price that actually gets a transaction included is driven by competition for block space.
How much does the launchpad charge per trade?
Launchpads charge a percentage of swap notional, applied to buys and sells alike. Pump.fun has historically published a single flat percentage for curve trades. Fee schedules are program parameters that have been revised before, so treat any published figure as changeable and confirm it against the protocol before budgeting.
Why are very small swaps expensive in percentage terms?
Because the base fee and the priority fee do not shrink with the swap. A flat cost of a fraction of a lamport-denominated amount is trivial against a large notional and can exceed one per cent of a tiny one. Below a certain size the flat components dominate everything else you pay.
Do you get the token account rent back?
Yes, when the account is closed. Holding an SPL token requires a rent-exempt account whose minimum balance is widely documented as roughly 0.002 SOL for a standard token account. It is a deposit rather than a fee, it is charged once per mint per wallet, and rent parameters can change.
Fee schedules should be confirmed against the launchpad itself at Pump.fun. Individual transaction costs, including base and priority components, are itemised per transaction in an explorer such as Solscan, and routing and slippage behaviour across venues is documented by aggregators such as Jupiter. Network parameters and platform percentages change; re-verify before budgeting.
