Custom Bundle
Open trading and buy from many wallets in the same block on Ethereum.
Custom Bundle launches a token you own that isn't trading yet. In one run it whitelists your bundle wallets, calls your contract's open-trading function, and buys from every bundle wallet right after. On Ethereum the whole sequence is one Flashbots bundle: every transaction lands in the same block, in order, or none do.
- A deployed ERC-20 that isn't trading yet, with an owner-only function that opens trading. Tokens from Deploy Token qualify.
- The initial liquidity (ETH and tokens) already sent to the contract.
- The Deployer (owner) private key, and a Master wallet with enough ETH for every buy, gas and the service fee.
The wizard has six steps: Token → Keys → Recipients → Distribute → Review → Execute. You can open any step at any time, and each button checks you have what it needs. The URL keeps ?bundle=<id>, so if you leave, a banner offers to Continue → your unfinished bundle. You can also reopen it from Manage.
Step 1 — Token
- Token contract address: a live preview shows name, owner, the ETH and tokens on the contract, and the pair status.
- Max Tx % (default 1): the share of supply each bundle wallet aims to buy. It also sets how much ETH Master needs.
- Randomize buy amounts (0–50 %, default 15): each wallet buys a random amount between (100 − x)% and 100% of its Max Tx target, so the launch doesn't show N identical buys that bundle scanners flag instantly. 0 makes every wallet buy exactly the target. Wallets are still funded for the full target, so nothing comes up short.
- Contract trading function: the default is
enableTrading(). Other presets areopenTrading(),openTrade(),OpenTrade(),launch(),startTrading(),StartTrading(),startTrade()andactivate(). Choose ✎ Custom function name... for anything else. It must take no arguments. - Pre-launch whitelist function (optional): use this if your contract blocks non-whitelisted buyers at launch. Find in My Contract searches the bytecode for common names with the
(address[],bool)signature, such asconfigureLaunchandwhitelistBundle. - Service fee tier: see Fees.
Step 2 — Keys
Paste the Deployer (Owner) key and click Check Ownership. You get ✓ Ownership confirmed, or a warning if the key doesn't match the owner the contract reports. Paste the Master key and click Use this wallet. Keys can have the 0x prefix or not.
Step 3 — Recipients
- Generate new wallets or Import my wallets. Generate creates fresh wallets on the server. Import takes your own private keys, one per line (with or without
0x, up to 100); they are encrypted and stored like generated wallets and buy in the order pasted. Imported wallets that already hold ETH count toward funding, so you can use Skip (already funded) on step 4. - Number of wallets: 1–100 (default 35). With Import, it is the number of keys pasted.
- Initial liquidity ETH (default 1) and Token % (default 80): what you will have seeded into the contract. Used to price the buys.
- Generate N Wallets creates the bundle wallets on the server and adds your tier's service wallets at the end. Regenerating replaces them, and is refused while any old generated wallet still holds ETH (imported wallets are yours and keep their keys, so they don't block it).
- The cost box prices each wallet in order against the pool (progressive cost) and compares the total with Master's balance.
- Show key reveals a bundle wallet's key after you confirm once. Service wallet keys are never shown.
Step 4 — Distribute
Fund wallets sends one Multicall3 transaction from Master that gives every wallet its exact amount plus 0.01 ETH per wallet for gas. The bundle becomes funded, which Execute requires.
Step 5 — Review
Check the token, trading function, Deployer, Master, wallet count and funding status. 🧪 Simulate Bundle dry-runs three calls without gas or keys: the whitelist call, the open-trading call, and a 0.001 ETH sample buy. The sample buy usually shows expected — trading not open yet, because it runs against the current state.
Step 6 — Execute
Above Simulate Bundle a balance check shows whether the Deployer can pay gas for the launch transactions and the Master can pay the service fee, with Refresh balances. Execute stays disabled while the Deployer is short. A Master warning can be ignored if a previous attempt already paid the fee: it is charged only once.
- Service feeMaster pays the tier fee to the TokenBundle treasury in a separate transaction first. It needs the fee + 0.002 ETH. The fee is charged once: if you retry, it is not charged again.
- Sign everything in advanceWhitelist call (every bundle wallet, including service wallets), open-trading call, and one Uniswap V2 buy per wallet. Each wallet buys exactly its Max Tx % of supply, priced in order against the pool as it will be after open (the token's own launch tax, such as Clog, included), with 3% tolerance. The rest of its ETH stays for a later sell.
- Simulate the signed bundleeth_callBundle on the Flashbots relay. If it fails, nothing is sent.
- Submit to buildersThe same bundle goes to the Flashbots relay, which forwards it to every registered builder (~19), and directly to Titan, Beaver and rsync, for each of the next 10 blocks. Requests are signed with a stable key, so TokenBundle builds reputation with Flashbots. It lands whole, or not at all.
- DoneYou get X/N buy(s) succeeded, a hash or error per wallet, and Open Terminal →. The launch appears in Overview with its PNL.
Bundle lifecycle
draft → wallets_generated → funded → executed. An executed bundle can't be reopened. You can delete a bundle from Manage only once every bundle wallet is empty.