# Bundle it yourself

V2: factory v2 launches and the full reference. Factory v2 made every launch from 2026-10-27 until 2026-11-02, and those coins keep its rules. This tab is how a v2 launch works, and the full reference v3 builds on: the chains a creator picks, the opening market cap, degen mode, coin tokenomics, the fees, bridging, routes and the APIs. Where v3 differs, the V3 tab says so.

Pangea's launcher launches your token on every chain, as for any launch. With the bundle kit, on each chain that has private bundles you get our own signed launch transaction for a short hold (20 seconds by default): put it in a bundle of your own with your buys right after it, and the launch and your buys land together. You pay everything: the bundle's gas and tip, the gas of our held launch, your buys, and the usual launch fee. Pangea assembles no bundle, signs nothing of yours and keeps no gas of its own on the held transaction.

Two ways to bundle on Ethereum or BSC. Here: along OUR signed launch transaction, as below. Or with "Launch it yourself": you send each EVM launch from your own wallet and bundle it however you like.

| Chain | How your buys go along the launch |
| --- | --- |
| Solana | First: our signed launch_v2 transaction, first in your own Jito bundle; your own transaction after it pays the Jito tip |
| Ethereum | Once Solana is live, a Flashbots or Titan bundle of three: your transaction funding our hold key's gas, our signed launch, your buys |
| BSC | Once Solana is live, a 48 Club or BlockRazor bundle of three: your transaction funding our hold key's gas, our signed launch, your buys |
| Base | No private bundles: your buys are made by contract in our launch transaction itself (the built-in multi-wallet launch buys) |
| Robinhood Chain | No private bundles: your buys are made by contract in our launch transaction itself (the built-in multi-wallet launch buys) |

## How to use it

- Prepare the launch with `bundleKitHeld: true` (a hold key is reserved for you on Ethereum and BSC: the quote then charges each such chain the gas to clear the hold key if a hold lapses, 52,500 gas, and NOT that chain's launch transaction's gas -- its launch, launch buys, dev buy and fee check -- which your bundle pays; a chain with no free hold key, and the chain you pay on (never held), is quoted and launched un-held, and `bundleKitHeld.unheld` names it), pay the fee on any chain and submit with `bundleKit: true` (POST /api/v1/launch/submit). Base and Robinhood Chain buys: name them as launch buys when you prepare the launch.
- Poll POST /api/v1/launch/bundle-kit with `{ ticket }`. A held chain shows `state: "held"`, `holdUntil` (unix seconds) and `tx`: `tx.raw` (the raw signed transaction) on Ethereum and BSC, `tx.wire` (base64, a v1 transaction) on Solana. Only your ticket gets it, and only while it is held.
- Solana: put our transaction FIRST in your Jito bundle, your tip transaction after it, before holdUntil.
- Ethereum and BSC (once Solana is live): our transaction is signed by a hold key that holds no gas. Your bundle is three transactions, in this order: (1) yours, sending `fund.wei` (shown with it) to `fund.to`, the hold key; (2) ours, `tx.raw`; (3) your buys. Send it before holdUntil.
- Not landed by `holdUntil` on Ethereum or BSC: the kit shows `state: "lapsed"` -- that chain is NOT launched (our launcher never sends a held leg itself: its launch gas is your bundle's, not in the fee). The hold key's nonce is burnt (the 52,500 gas in your fee), and you are refunded that chain's share of the fee, and the route fee you paid for that chain if you ticked "Open all bridge routes at launch". Solana: `state: "sent"`, our launcher sends exactly the held transaction. A bundle sent after the hold may revert, at your gas.
- Live: `state: "live"`. Solana shown `state: "ours"` could not be held (its transaction could not be signed): our launcher sends it, as for every launch. An Ethereum or BSC leg quoted held is never sent by our launcher: one that could not be held at launch (for example, every hold key was in use) is `state: "lapsed"`, as above. `state: "checking"`: the chain could not be read after its hold -- it is read again, and is then live or lapsed.
- The chain you pay on is never held (owner rule): paid on Ethereum or BSC, that chain is launched by our launcher as usual, un-held, with its launch gas in the fee, and you cannot bundle on it. Instead you can bundle on your other chains, use "Launch it yourself" and send that chain's launch from your own wallet, or pay on another chain. Prepare's `bundleKitHeld.payChain` says so, and the launch page shows it before you pay.
- A lapsed chain is not launched, and nothing is bridged to it: it is left out of the coin's chains, its routes and every bridge quote.

> **Note:** Holds never slow anyone else: each held launch uses its own hold key, apart from the launcher every other launch uses, and a chain quoted with no hold key free goes out un-held, as any launch. Not with a launch whose legs you send yourself (`selfLaunch`, `selfSolana`, or "Launch it yourself"). The fee is the launch's usual fee plus the hold's worst-case gas on each Ethereum and BSC leg (a few tens of thousands of gas).

Part of the Pangea documentation, V2 tab: https://www.pangea.trade/app/docs.md
