01Overview
Fusionpad merges two existing pump.fun coins into a new one, the hybrid, but only for the holders who choose it. A fusion is proposed for a pair of coins with the hybrid's final name, ticker and picture. For 48 hours each coin's holders can pledge tokens (YES) or lock tokens against it (NO). A side passes when YES reaches 5% of its circulating supply and YES is larger than NO. If both sides pass, the program sells the pledged tokens of each side on that coin's own curve, in steps, and then launches the hybrid on pump.fun and buys it with all the SOL raised, in one instruction. Every pledger receives the hybrid at the one average price of their side.
- Only pledged tokens convert. A holder who does nothing keeps the old coin. A vote can never move anybody else's tokens.
- One price per side. Every pledger of a side gets hybrid tokens in proportion to their pledge, from one buy.
- Nothing is custodied by a person. Tokens and SOL sit in program accounts; every payout goes to the wallet recorded on chain.
- Everything after the vote is permissionless. Tally, sell, birth, abort, claims and fee booking can be sent by anyone; a keeper does it within seconds, and the site offers the same buttons.
02Lifecycle
| State | What happens | How it ends |
|---|---|---|
| Voting | Pledge (YES), take back, oppose (NO). The last hour is frozen. | tally after the end: both sides pass → Selling, else → Failed. |
| Selling | sell_tranche sells at most 10% of a side per step on its own curve, 60 s apart, never under the 7-price median minus 3%. | Both sides sold → birth → Born. A blocked sale → abort → Aborted. |
| Born | The hybrid exists on pump.fun. Pledgers claim hybrid tokens and SOL back; creator fees accrue. | Final. |
| Failed | The vote did not pass. Every pledge is returned in full. | Final. The pair can be proposed again after the cooldown. |
| Aborted | The sale could not finish. Pledgers take back the unsold tokens and the SOL already realized. | Final. |
03Proposing
- Watch both coins. Fusionpad records a coin's spot price with
observe(anyone, once per gap per coin). The first observation starts its clock: a coin can be proposed after it has been watched for the minimum coin age (6 hours on mainnet). - Pick the pair. Both coins must still be on their pump curve, not engaged in another fusion, and the pair not proposed within the pair cooldown (7 days). Side A is the coin with the smaller address.
- Fix the hybrid. Name (1-32 characters), ticker (1-10, A-Z 0-9) and picture are uploaded to IPFS and stored in the fusion. They cannot change later.
- Pay the bond. 0.5 SOL. After a pass it stays held in the Crucible and goes back to the proposer at the birth. It goes to the treasury if a side misses the quorum or is too small, or if the sell window runs out with a side less than half sold. It goes back if NO wins a side, or if a coin leaves its curve.
The program stores each side's circulating supply at propose: the mint supply minus the tokens held by the coin's curve. The quorum of each side is measured against that number.
04The vote
| Pledge (YES) | Your tokens move into the fusion's YES vault for your side. If the fusion passes they are sold, and you receive the hybrid instead. |
| Take back | Before the final hour you can take back any part of your pledge. |
| Oppose (NO) | Your tokens are locked in the NO vault until 24 hours after the vote ends, whatever the outcome, then returned to you (anyone can push the return). |
| Final hour | No pledge, take back or oppose in the last hour, so nobody can flash-deposit or pull borrowed votes right before the tally. |
| Pass | Per side: yes × 10000 ≥ quorum_bps × circulating (5%) and yes > no and the pledged tokens are worth at least 0.1 SOL on the coin's curve at the tally (min_side_value). Both sides must pass. A coin that left its curve during the vote fails the fusion. |
05The crucible
After a pass the pledged tokens are sold, side by side, on each coin's own pump curve, by sell_tranche(side, amount):
- At most 10% of the side per call, and at least a tenth of that (or whatever is left), so nobody can burn the gap with dust tranches.
- At least 60 seconds after the side's previous tranche.
- The two sides sell in step: while the other side is not fully sold, a side may be at most one tranche (10%) ahead of it (
TrancheAhead). A side that cannot be sold therefore stops the other one after a single tranche. - A fresh median of the newest 7 price observations of the coin, none older than 30 minutes. The sale requires
min_out = amount × median × (1 − 3%); if the curve would pay less, the tranche waits (PriceBelowMedian). A dump right before a tranche therefore makes it wait instead of selling cheap. sell_tranchemust be alone in its transaction (only Compute Budget and System next to it), so nobody can sandwich it inside one transaction.- The keeper sizes each tranche as the largest amount the program accepts at that moment. Anyone can press "Run the next tranche" on the site.
06The birth
Once both sides are sold, anyone sends birth. In one instruction the program:
- computes
deploy = min(pool − rent_reserve, buy_cap)wherepoolis the SOL realized by both sides; - pays the launch fee, 2.5% of
deploy, to the treasury; - creates the hybrid on pump.fun with the proposal's name, ticker and picture (
create_v2; the creator is the fusion's ChildFees account, so creator fees belong to the fusion); - buys it once with
deploy − fee; - books
sol_back = pool − fee − offered − rentsfor the pledgers (the unused rent reserve, and everything above the buy cap).
The hybrid tokens and the SOL back are split between the sides by the SOL each side raised: tokens_x = tokens × sol_x / pool. The hybrid is recorded as a coin of generation max(parents) + 1, so hybrids can fuse again and the family tree grows. birth must be alone in its transaction: nobody can buy the hybrid in the same transaction.
07Worked example
| Step | Side A ($BOGT) | Side B ($HILLG) |
|---|---|---|
| Circulating at propose | 800,000,000 | 600,000,000 |
| Quorum (5%) | 40,000,000 | 30,000,000 |
| YES / NO at the end | 60,000,000 / 10,000,000 → passes | 50,000,000 / 5,000,000 → passes |
| Sold in 10 tranches | 3.200 SOL | 2.800 SOL |
| pool = 6.000 SOL · deploy = min(6.000 − 0.030, 70) = 5.970 · fee = 2.5% × 5.970 = 0.14925 · offered = 5.82075 SOL in one buy | ||
| rents of the new mint and accounts ≈ 0.0132 · sol_back = 6.000 − 0.14925 − 5.82075 − 0.0132 ≈ 0.0168 SOL | ||
| Share of the hybrid tokens | 3.2 / 6.0 = 53.33% | 2.8 / 6.0 = 46.67% |
| A wallet that pledged 6,000,000 | 10% of side A: 5.33% of all hybrid tokens + 10% of A's SOL back | — |
08Claims
| Outcome | A pledge of p on side x receives |
|---|---|
| Born | child_x × p / yes_x hybrid tokens and sol_back_x × p / yes_x SOL |
| Failed | exactly p back (nothing was sold) |
| Aborted | (yes_x − sold_x) × p / yes_x old tokens and sol_x × p / yes_x SOL already realized |
Anyone can push a claim; it always pays the pledge's own wallet. The keeper pushes them all. A SOL share smaller than the rent of an empty wallet stays pending until the wallet holds some SOL. "Mine" on the site lists everything a connected wallet is owed, with one "Claim everything".
09Child creator fees
The hybrid's pump.fun creator fees are collected into its ChildFees account (collect_fees, and unwrap_fees after it migrates to PumpSwap) and booked by sync_fees: 70% to the pledgers, split between the two sides by the SOL each side raised and inside a side pro rata to the pledge, 15% to the proposer, 15% to the treasury (plus rounding dust). A side that brought little SOL earns a small share. Pledgers claim with claim_fees; the proposer and treasury legs are paid by payout.
10Failed and aborted
A fusion fails at the tally when a side misses the quorum, NO wins a side, a side's pledges are worth less than 0.1 SOL, or a coin left its curve. Every pledge comes back in full, NO locks come back after their lock. The bond goes to the treasury if a side missed the quorum or was too small, and back to the proposer if NO won or a coin migrated. The site's "Run it again" pre-fills a new proposal with the same coins, name, ticker and picture once the pair cooldown has passed.
A fusion is aborted (anyone may send abort) while selling when: a side with unsold tokens left its pump curve (reason 1), the sell window of 3 days ran out (reason 2), or everything is sold but the pool is below the minimum birth of 0.5 SOL (reason 3). Every pledger takes back its share of the unsold tokens plus the SOL already realized. The held bond goes back to the proposer, except after a sell-window abort in which a side sold less than half of its pledges: then it goes to the treasury.
11Parameters
Parameters are copied into every fusion when it is proposed: a later config change never alters a running fusion. The column "Now" is read live from the program on this network.
| Parameter | Mainnet default | Allowed range | Now |
|---|
12Program reference
Program , Anchor 0.31.1. pump.fun is used by CPI (curve sells, create_v2, buy).
| Account | Seeds | Holds |
|---|---|---|
| Config | ["config"] | admin, pending admin, treasury, paused, params, fusion counter |
| ObsRing | ["obs", mint] | 16 price observations of a coin, the "watched since" time |
| Fusion | ["fusion", id u64 LE] | proposer, hybrid name / ticker / uri, params copy, both sides, times, state, birth results, fee books |
| Crucible | ["crucible", fusion] | system account: bond, YES vaults (ATA per side), realized SOL, hybrid tokens |
| ChildFees | ["cfees", fusion] | pump creator of the hybrid, its creator fees |
| NoLock | ["nolock", fusion] | authority of the NO vaults |
| Pledge | ["pledge", fusion, side u8, wallet] | amount, claimed flags, fees claimed |
| Oppose | ["oppose", fusion, side u8, wallet] | amount (closed when returned) |
| Coin | ["coin", mint] | generation, parents, active fusion, fused into (the family tree) |
| Pair | ["pair", mint_a, mint_b] | last proposal time (pair cooldown) |
| Instruction | Who can call | Notes |
|---|---|---|
observe | anyone | one price per coin per gap; alone in its transaction |
propose | anyone (pays the bond) | alone in its transaction; blocked while paused |
pledge, unpledge, oppose | the token holder | until the final hour |
withdraw_oppose | anyone (tokens to the wallet) | after the end + NO lock |
tally, abort | anyone | after the end / when allowed |
sell_tranche, birth | anyone | alone in their transaction |
claim, claim_fees, payout, collect_fees, unwrap_fees, sync_fees | anyone | payouts only to the recorded wallet / proposer / treasury |
update_config, set_treasury, set_paused, propose_admin | admin | new fusions only; accept_admin by the proposed key |
13Errors
Read from the program's IDL. The site shows the message; explorers show the name.
| Code | Name | Message |
|---|
14Verify on chain
- Open the program in an explorer and read any Fusion account: sides, YES / NO totals, sold amounts and SOL per side are plain fields.
- Check the YES vault of a side (the Crucible's token account for that mint): it holds exactly
yes − soldwhile voting or selling. - After a birth, the transaction shows the fee to the treasury,
create_v2with the proposal's name, ticker and uri, and one buy, in one instruction. The Born event lists pool, fee, offered, tokens and each side's share. - /stats sums every fusion and checks that no side ever sold more than its pledges.
15Admin powers
The admin can
- change parameters within the program's hard bounds, for new fusions only;
- pause new proposals (running fusions continue);
- set the treasury address;
- hand over the admin key in two steps.
The admin cannot
- touch a Crucible, a YES or NO vault, ChildFees or a pledge;
- change a running fusion's rules, name, ticker or picture;
- stop a tally, a sale, a birth, an abort or a claim;
- send anyone's tokens or SOL anywhere but their recorded wallet.
16Risks
- Market risk. Pledged tokens are sold; the hybrid is a new pump.fun coin and can lose value.
- Circulating supply is read at propose. A proposer who sells into the curve right before proposing lowers the 5% bar (in a separate transaction; propose must be alone). He pays pump's fees and the market risk.
- Slow sales. After each tranche the price sits under the median for a while, so large sides sell slowly. If the sell window of 3 days runs out, the fusion is aborted and pledgers get the unsold tokens and the SOL realized.
- Migration mid-sale. A side whose coin leaves its curve during the sale aborts the fusion (v1 has no PumpSwap sell path).
- Griefing. A junk proposal engages both coins for the vote and starts the pair cooldown; it costs the proposer the 0.5 SOL bond when a side misses the quorum or is too small.
- Tranche sandwich. A bundle that dumps, lets a tranche sell and buys back can still fill that tranche at the price guard: per tranche the pledgers can lose up to 3% plus pump's fee of its value. The guard is capped at 5% by the program.
- A paired coin the proposer controls. A proposer can pair a big coin with a small coin of his own worth at least 0.1 SOL; the fusion then works as designed and his side gets a share weighted by the SOL it raised.
- Back-running. Anyone can buy the hybrid in the transaction right after the birth (not in the same one).
- pump.fun keeps admin powers over its coins, including reassigning a creator by hand.
- The program is upgradeable and has not been audited by a third party.
17FAQ
- I hold the coin and did nothing. What happens to my tokens?
- Nothing. Only pledged tokens are converted. You keep the old coin, which keeps trading.
- Can I change my mind?
- Yes, until the final hour: take back any part of your pledge. NO tokens stay locked until 24 hours after the vote.
- Why do NO tokens stay locked longer?
- So a vote cannot be flipped with borrowed tokens: a NO vote costs the voter the use of those tokens for the whole window plus a day.
- Who pays for tallies, sales and births?
- Whoever sends them, usually the keeper. The site shows the same buttons if the keeper is late.
- Why is the price per side and not one price for everyone?
- Each side's tokens are sold on their own curve. Pledgers of a side share what their side raised, so one side can never dilute the other.
- Can a hybrid fuse again?
- Yes. It is a pump.fun coin like any other; its generation is one above its parents.
- What does the picture on the site mean?
- The crucible shows every coin as a 64 × 64 grid. The hybrid is re-assembled from its parents' pixels, each taken from the parent pixel of the nearest colour. It is a picture of the mechanic, not of prices.
+
=