The launch
A launch spans three chains, so it cannot be one transaction. It is a fixed sequence run by the keeper, each step a public transaction. pump.fun comes first: Solana is where the launch starts and where the deposit is, and if anything fails afterwards the coin is left on the chains already done.
How a launch starts
- The creator fills the launch page. The logo goes to
POST /api/metadata, which pins it for pump.fun and for Flap, then the parameters go toPOST /api/requests. - The keeper answers with a deposit address (its address on Solana), an amount in SOL and a reference. The amount covers the three chains: the pump.fun creation, the Pons launch fee, the Robinhood Chain gas and the BNB Chain gas at the current rates, and a margin.
- The creator sends the amount in SOL to that address with the reference in a memo instruction, from the Solana address given in the request. The page then sends the transaction signature to
POST /api/requests/:id/deposit. - The keeper reads the transaction on Solana, checks signer, recipient, memo, success and amount, and starts the pipeline. A request that gets no deposit expires after 30 minutes.
The pipeline
| Step | What happens |
|---|---|
pump_create | The keeper wallet creates the coin on pump.fun with create_v2 and, for a dev buy, buys it in the same transaction (through an address lookup table, see the keeper) |
pump_send | If there is a pump.fun dev buy: the keeper sends its tokens to the creator's Solana wallet and closes its own token account. It sends whatever the keeper holds of that coin, so a retry never sends twice |
pons_launch | PivotLauncher.launch on Robinhood Chain launches the coin on Pons with the same name, ticker and logo, and a dedicated PivotVault as creator fee recipient. The creator's deposit pays the 0.0005 ETH launch fee, converted to SOL |
flap_launch | The keeper mines a salt that gives the token an address ending in 7777, then PivotFlapLauncher.launch on BNB Chain launches a Tax Token V3 through the Flap Portal, with a dedicated PivotFlapSplit as tax beneficiary |
fee_share | Two transactions on pump.fun: create_fee_sharing_config, then update_fee_shares_v2, which fixes the shareholders once |
register | The coin is added to the keeper's list and the three addresses are returned |
Every step is saved before the next one starts. A crash or a restart resumes where it stopped and never repeats a finished step. A step that fails is retried up to three times. Passes never overlap: a request already being worked on is skipped.
Parameter mapping
| Pivot field | Pons launch | Flap launch | pump.fun |
|---|---|---|---|
| name, ticker | name, symbol | name, symbol | create_v2 name, symbol |
| logo and metadata | logoIpfs | meta, a CID pinned on Flap's gateway | metadata URI |
| creator fee | creatorFeeBps, 1 % to 10 % | taxBps, buy and sell | fixed 30 bps, shared |
| fee recipient | the vault, then split | the splitter, then split | sharing config: creator wallet and Pivot |
| optional EVM payout | creatorEvm, creatorShareBps | creatorEvm, creatorShareBps | n/a |
| dev buy | devBuyWei, tokens to creatorEvm | msg.value, tokens to creatorEvm | buy in the creation transaction, then sent to the creator wallet |
Failure modes
The chains are separate, so there is a window between the steps. Each case is a tested path of the pipeline.
| Failure | Outcome |
|---|---|
| pump.fun creation fails | Nothing else runs, the deposit is refunded in full, in SOL |
| The Pons launch fails after pump.fun | The coin stays on pump.fun, the deposit is refunded minus the costs already spent, in SOL |
| The Flap launch fails after pump.fun and Pons | The coin stays on pump.fun and Pons, the deposit is refunded minus the costs already spent, in SOL |
| Fee sharing fails | The keeper wallet stays the creator of record of the pump.fun coin, the request needs attention |
| No deposit arrives | The request expires |
| A deposit below the amount, or from another wallet | It does not start the launch |
| A dev buy larger than the keeper can front in ETH or BNB | The request is refused with a clear message, before any money is asked |
| A keeper wallet is low on SOL, ETH or BNB | New requests are paused with a clear message until it is refilled, see the keeper |
CarefulThe refunds and the retries are run by the keeper. They are tested, but they are a promise of the operator, not something a contract enforces. See the operator and the trust model.
What stops a bad launch
- The Pons and Flap contracts check the creator fee (at most 10 %) and the payout share.
- A dev buy on Pons or Flap needs your EVM address, because that is where the tokens go: the API and the contracts both refuse it without.
- Flap does not accept a tax below 1 %: the page and the API refuse a lower fee before any money is asked.
- The API rejects an invalid name, ticker, address, fee or image before it quotes a deposit.
- The API refuses to quote when the SOL, ETH and BNB rate sources disagree.
- Only the keeper can call the launchers.
- At most 12 requests and 20 uploads per hour and address.