What a bundle is#
A bundle is a crowdfund for exactly one token launch on pump.fun. It has a name, a ticker, an image, a target in SOL and a set of terms. While it is open, anyone can buy shares in it with SOL and sell them back at any time. There is no deadline: it stays open until it fills or the creator stands it down.
When the target is reached the bundle fills: contributions become permanent, the token is created on pump.fun with the bundle's own program account as the coin creator, and the raised SOL buys the bonding curve. From then on the bundle earns the creator fee on every trade of that token, and 80% of it belongs to the backers, pro-rata to their shares, for as long as the token trades.
Nothing here is custodial. The SOL sits in a program-owned account from the first contribution to the launch buy, the fee split is computed by the program, and claims go straight to the backer's wallet. The keeper only cranks permissionless instructions.
The share curve#
Shares are priced on a straight line: the first share costs 0.5 SOL (per whole share) and the last one 1.5 SOL, so the average across the whole bundle is exactly 1 SOL per share. A bundle with a target of T SOL therefore has T shares at fill, and holding x shares means holding x / T of the bundle.
price(s) = (T + 2s) / (2T) SOL per share after s shares sold cost(s1 -> s2) = (s2 - s1) * (T + s1 + s2) / (2T) what it costs to go from s1 to s2 shares
Funding L SOL from s shares sold gives you the largest whole number of shares (in lamport units) whose cost is at most L; the program solves the quadratic with an integer square root and rounds down. Selling x shares back refunds cost(s − x → s) rounded down: the curve is walked back the way it was walked up. Because every rounding goes the treasury's way, the account always holds at least what it would cost to buy the outstanding shares from zero, so every backer can always exit, in any order, while funding is open.
The preview on the bundle page uses the same integer formulas, and the transaction carries a minimum-shares (or minimum-refund) bound 1% below the preview so a trade that lands after someone else's cannot surprise you by more than that.
- Target: 1 to 5 000 SOL. Minimum contribution: 0.01 SOL.
- The last contribution is charged only what is needed to fill; the rest stays in the wallet.
- Shares are shown divided by 10⁹, so "1 share" is what 1 SOL buys at the average price.
Fill and launch#
- The contribution that reaches the target flips the bundle to Filled. Funding and selling back stop; positions are frozen.
- The keeper creates the token on pump.fun (
create_v2) with the bundle's program account as creator, then callsattach_token. The program checks the token really names the bundle as creator, sends the one-time launch fee (5% of the raise) to the platform and sets the cash reserve aside. launch_buyspends the rest on the bonding curve, signed by the program through the bundle's vault (a second program-derived account that is pump.fun's trading user). The tokens land in the vault's token account. The bundle is now Live.
Two transactions, no trust: the SOL never leaves the program, and anyone can verify on chain that the coin's creator is the bundle account. If a launch is sniped to graduation before the buy lands, the admin marks the bundle live and the swarm buys on PumpSwap instead.
Fees#
pump.fun pays the coin creator a fee on every trade, on the bonding curve and on PumpSwap after graduation, always in SOL. Here the creator is the bundle, so that fee lands in the bundle account. Anyone can call harvest; it books whatever arrived and splits it:
- 20% platform, sent to
7P48uP5gpbzMHsR7Lhx8X26HgCFJctQaiqy8cjY4w6TR. - Team: 0 to 25% of the backers' share, chosen by the creator before anyone funds and sent to the team wallet named at creation. The diagram shows a 10% team share as an example.
- The rest to backers: it raises an accumulator (fee per share) and each position can claim
shares × accumulator − already claimed. Claims are permissionless, so the keeper pushes them to wallets once they are worth the transaction fee; you can also claim from the bundle page or the desk.
The creator fee itself is pump.fun's: the same schedule every coin gets, currently about 0.3% of every trade on the bonding curve and on PumpSwap. It is not configurable per bundle. The platform and launch percentages are snapshotted into the bundle when it is created, so a later change of the defaults never touches an existing bundle.
The swarm#
The tokens the bundle bought at launch plus its cash reserve (0 to 50% of the raise, chosen at creation) form the swarm: inventory the bundle can trade to support its own market. Both live in the bundle's vault account, which only the program can move. An operator key runs the strategy, but the program is the real limit:
- It can spend at most a fixed share of the cash per window (default 20% per 1 hour) and sell at most a fixed share of the inventory per window (default 10%).
- It can never sell below the bundle's sell floor, if one was set.
- It can buy and sell only through pump.fun and PumpSwap, only into and out of the vault's own accounts. There is no withdraw instruction.
- The admin can pause the swarm and tighten its limits inside the bounds; it cannot loosen them past the maxima or move funds.
The strategy in v1 buys small amounts on dips against the 24 h average and sells small amounts on rips above it, never in the first minutes after launch, never below a cash floor.
Who can do what#
- Creator: sets the terms, can stand the bundle down (sell-only) and reopen it while funding, and close it once it is empty. Cannot touch the money.
- Backers: fund, sell back while open, claim fees after launch, close an empty position to recover its rent.
- Operator (the keeper): attaches the token, trades the swarm within the limits, cranks harvests and claims.
- Admin: pauses new bundles, adjusts swarm limits within bounds, the "mark live" escape hatch. Cannot withdraw.
Program id: 5UUM5H4iStap81hV7rgK4BHLRuzLg53foYTD93LZHFdg.
Risks#
- The token can lose value. Backers do not hold the tokens; the vault does, and the swarm may trade them. Its inventory and cash can fall in value.
- Launch can be front-run. Anyone watching the chain may buy the curve before the bundle's own launch buy lands; the program tolerates this rather than failing the launch.
- Dependencies. pump.fun and PumpSwap can change their programs or fee structure; the keeper reads their live configuration and the program passes accounts through, but a breaking change could delay launches or fee collection until updated.
- Positions are not transferable in this version.