How it works

Exactly what Topoff does, which transactions you sign, how votes are counted, what is enforced on-chain and what isn't. If this page and the code disagree, the code is wrong.

State of the site

  • Launches: not open yet. The first real launch is being tested on mainnet.
  • Votes: not open yet. The first real fill is being tested on mainnet.
  • The Tank: not set up yet.
  • Source code: not published yet.

The idea

Most pump.fun coins that stall do it in the last stretch of the bonding curve: the coin is close to migrating and the buyers run out. Topoff pools a share of the creator fees of every coin launched here into one Tank. When a coin reaches 85% of its curve, its holders can ask the Tank to buy the rest. If they vote yes and the Tank can cover it, the Tank buys every token left on the curve, burns them, and the coin migrates.

The pour

At launch you pick a share of your coin's creator fees: 50, 75 or 100%. pump.fun charges a creator fee on every trade (0.3% on the bonding curve, read live from pump.fun's fee config). Topoff uses pump.fun's own fee sharing to send your share to the Tank's vault:

  • The pour and the Tank's vault are written in the coin's metadata JSON as "topoff": { "v": 1, "pourBps": 5000, "tank": "<vault>" }, pinned on IPFS. pump.fun stores the metadata address at creation and never changes it.
  • Right after the creation, a second transaction (approved in the same wallet prompt) runs create_fee_sharing_config and update_fee_shares with [Tank: pour, you: the rest]. pump.fun allows that one update and then revokes the admin, so the split is locked.
  • Fees accumulate in pump.fun. Pay out on any coin page runs pump.fun's permissionless distribution: the Tank and the creator get their shares. Anyone can press it.
  • Each coin page reads the split on-chain and says so if it doesn't match the metadata or isn't locked. Such a coin can't call the Tank.

The launch: two transactions, one prompt

  1. Your image and the metadata JSON are pinned on IPFS through the site's server (Pinata).
  2. Your browser makes a new mint key and builds, with pump.fun's official SDK: (1) create_v2 and your dev buy in the same transaction, so nobody can buy before you; (2) the fee split above.
  3. Your wallet signs both, then the mint key signs the first. Each is simulated before it's sent: if it would take more SOL than the review showed, it isn't sent. The fee split can only be simulated once the coin exists, so it goes second; if it fails, the coin page lets you finish it.
  4. The server reads the creation back from the chain before listing the coin: success, pump.fun called, SOL-quoted curve, creator paid, and the metadata names this site's Tank.

Programs the launch may call: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P, 11111111111111111111111111111111, ComputeBudget111111111111111111111111111111, TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA, TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb, ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL. The fee split: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P, pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ, 11111111111111111111111111111111, ComputeBudget111111111111111111111111111111.

The vote (rules v1)

Who can call the TankAny holder of the coin, once the curve is at 85% or more, not complete, and the fee split is routed and locked.
HowA wallet signature of a plain message naming the coin and the round. Free; no transaction.
Length24 h from the call.
BallotYes or no, a free signature. One per wallet per round: the first counts. The wallet must hold the coin.
WeightThe smaller of the wallet's balance when it voted and at the close, capped at 5% of the circulating supply (tokens the curve has sold).
Passes whenVoters weigh at least 10% of the circulating supply, and yes weighs more than no. A tie is a no.
After a vote that didn't payThe coin can call again 24 h after the count.
The Tank pays whenThe gap (SOL to buy every token left on the curve, fees included) plus 3% fits within 50% of the Tank's spendable balance. Never a partial payment.

The count runs on the site's server, on the first request after the close: it reads every voter's balance again, the curve and the Tank. Every ballot is published on the coin page with its signature and both balances, so anyone can recount. Changing any number ships as a new rules version, never silently.

A fill

The Tank is a Squads v4 multisig. A fill is one Squads vault transaction, with two instructions run by the Tank's vault:

  1. buy_v3 of every token left on the curve, for at most the gap plus 3%. Buying the last token completes the curve, and pump.fun migrates the coin to PumpSwap.
  2. burn_checked of exactly those tokens. The Tank never holds a coin.

On the Tank's Squads multisig, a member proposes the fill (the site prices it again and refuses if the Tank can't cover it), the others approve, one executes. The server reads the execution back: Squads called on the Tank's multisig, the vault burned this coin, the curve is complete. Members' transactions may only call SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf, 11111111111111111111111111111111, ComputeBudget111111111111111111111111111111.

If someone sells into the curve between the proposal and the execution, more tokens are left than the fill buys and the curve doesn't complete; if someone buys, the price moves and the buy may fail on the margin. Either way the members propose again.

Who enforces what

  • The poured share of the creator fees goes to the Tank, and the split can't be edited.

    Enforced on-chain by pump.fun fee sharing

    At launch the creator signs pump.fun's fee-sharing setup: the Tank's vault gets the poured share, the creator the rest. pump.fun allows one update, then revokes the admin. Each coin page reads the split on-chain and says when it doesn't match.

  • The pour can't change after launch.

    Enforced on-chain by pump.fun and IPFS

    The pour and the Tank's address are written in the coin's metadata JSON, whose IPFS address pump.fun fixed at creation.

  • Nobody can take SOL out of the Tank alone.

    Enforced on-chain by Squads v4 multisig

    The Tank is a Squads multisig vault. Every spend is a proposal that needs the threshold of member signatures, and waits out the time lock if one is set. /tank shows the members, the threshold and every proposal.

  • A fill buys the rest of the curve and burns it, all of it or none of it.

    Enforced on-chain by Solana and Squads

    The buy and the burn are two instructions of one vault transaction. If the price moved past the margin, the buy fails and nothing is spent. Buying the last token completes the curve; pump.fun then migrates the coin.

  • Votes are counted by the published rules.

    Tracked by Topoff

    Each vote is a wallet signature, published with its balance at vote time and at the close. Weight is the smaller of the two, capped at 5% of the circulating supply; the vote passes with 10% turnout and more yes than no. The coin page shows every ballot so you can recount.

  • The Tank only pays when it can cover the whole gap.

    Tracked by Topoff

    A fill needs the gap plus 3%, and may not use more than 50% of the Tank. The site refuses to build any other fill.

  • A vote that passes gets filled.

    Tank signers' word

    A Squads multisig can't act by itself: its members must propose, approve and execute the fill. The coin page shows how long a passed vote has waited. No program forces them.

  • The coin holds its price after it migrates.

    Nobody

    Finishing a curve moves the coin to PumpSwap. It can still lose all its value in minutes.

Fees

Creating the coin

No pump.fun creation fee; about 0.02 SOL of rent for the new accounts, and network fees

Solana

Setting the fee split

Rent for pump.fun's sharing config (about 0.006 SOL) and a network fee, in the same wallet prompt

Solana

Trading on the curve

pump.fun's protocol and creator fees on every buy and sell, your dev buy included (live rate on /docs)

pump.fun

Calling the Tank, voting

Free. A message signature, not a transaction

Topoff

Paying out the fees

Anyone can press Pay out on a coin page: a network fee

Solana

A fill

Paid by the Tank. The signers pay network fees and the rent of the Squads proposal

Squads, Solana

Topoff

Nothing. No service fee, no token allocation. The Tank is not the team's wallet

Topoff

What Topoff doesn't do

  • It takes no fee and no token allocation. The Tank isn't the team's wallet: it only signs fills.
  • It never holds your keys. Your wallet signs everything in your browser.
  • No program forces the Tank's signers to execute a passed vote. The coin page shows how long it has waited.
  • Votes are counted by the site's server, not on-chain. The data to recount is public.
  • It can't stop a holder from splitting a bag across wallets: that keeps the same weight, and only gets around the 5% cap.
  • It can't change pump.fun's curve or fees, and lists only coins launched here.