What BatchPad is
BatchPad is a launchpad on Solana where coins never trade continuously before they graduate. Every buy and every sell sent during a window of 120 seconds waits in escrow. When the window ends, the whole batch executes at once, at one price. The first order in a batch and the last one get exactly the same price.
On a continuous curve, whoever lands first gets the cheapest tokens, so bots race for the first block, bundle the launch and sandwich everyone after them. In a batch there is no order inside the window, so there is nothing to race for. This is the frequent batch auction idea from traditional markets (Budish, Cramton and Shim, 2015), built into a bonding curve.
1. Collect120 s of buys and sells go into escrow.
2. ShowEvery order is on screen while it waits.
3. NetBuys meet sells; only the difference touches the curve.
4. One priceEveryone filled in the batch pays or gets the same price.One batch, step by step
- The window opens. A coin always has one open batch. It closes 120 seconds after it opened (the first batch of a new coin runs 10 minutes).
- Orders come in. A buy locks its SOL in the coin's escrow; a sell locks its tokens. Each order carries a limit: the highest price a buyer accepts, the lowest a seller accepts.
- The book is open. The site shows every waiting order, the SOL to buy, the tokens to sell, and the price the batch would clear at if it closed now.
- The window closes. Anyone can send the clearing transaction (our keeper always does, within a second or two). The program computes one price, moves the curve once, and opens the next batch.
- Payout. Every order of the cleared batch is paid out from escrow: tokens plus any unused SOL to a buyer, SOL plus any unsold tokens to a seller. The keeper does this for everyone; you can also do it yourself on the coin page.
An idle batch (no orders when its time runs out) simply restarts its clock at the next order. Between batches the price does not move at all.
The price
Each coin has a constant product curve with pump.fun's numbers: 1 000 000 000 tokens, 793 100 000 of them sold through batches, 30 virtual SOL and 1 073 000 000 virtual tokens at the start. Call the curve's SOL side x and token side y (real plus virtual).
Inside a batch, the buyers bring B SOL and the sellers bring S tokens. At one price P, the sellers' tokens go straight to the buyers, and only the difference goes to the curve, at the curve's own average price for that difference. The price that makes both true is
P = (x + B) / (y + S)
It is the same formula whether buyers or sellers are the bigger side, and after the batch the curve keeps its constant product: x' · y' = x · y. The whole batch is one trade against the curve, split fairly.
An example
A fresh coin, three buyers with 1 SOL each in the same batch (0.99 SOL each after the 1% fee). B = 2.97, S = 0, so P = 32.97 / 1 073 000 000 SOL per token and each buyer gets 32.22M tokens.
| Continuous curve (one after another) | BatchPad (one batch) | |
|---|---|---|
| First buyer | 34.28M | 32.22M |
| Second buyer | 32.15M | 32.22M |
| Third buyer | 30.22M | 32.22M |
| Total | 96.65M | 96.65M |
The curve sells the same total either way. The only thing a batch removes is the prize for being first.
Limits and the price grid
Limits sit on a fixed grid of 288 prices, 1% apart: price(t) = 25 lamports per token × 1.01t. Every price a coin can ever reach (27.96 to 410.9 lamports per token) is inside the grid. The top step is "any price" for a buy, the bottom step "any price" for a sell.
- A buy executes when its limit is at or above the batch price. A sell executes when its limit is at or below it.
- The site rounds a buyer's limit down to the grid and a seller's limit up, so a limit is never looser than you asked for.
- Dropping a buy lowers the price and dropping a sell raises it, so there is exactly one clearing price. The program finds it exactly, not by trial.
- If the price lands exactly on a step where orders sit, those orders are the marginal ones: one side of them fills completely, the other side fills pro rata, exactly enough for the books to balance. This is how every call auction on a stock exchange works.
The opening batch
A new coin's first batch runs for 10 minutes, so that everyone who wants in has time. The creator buys in the same batch, at the same price, as everyone else: there is no dev allocation and no early wallet. Each wallet can put at most 0.575 SOL into the opening batch; even alone in it, that buys just under 2% of the supply. Nothing can be sold in the opening batch because no tokens exist before it clears.
Full batches and the queue
A batch holds up to 300 orders. When it is full, or its window has closed and it waits to be cleared, new orders go into the next batch, which is always open for orders and visible on the coin page. The next batch starts its own 120 seconds the moment the current one clears. One wallet can hold one buy and one sell per batch.
Cancelling
You can take an order back at any time before its batch closes (a queued order, any time before its batch has closed). The escrow comes back in full, together with the small rent of the order account. After the window closes an order can no longer be cancelled: it is part of the price.
Getting paid
After a clearing, each order receives exactly what the formula gives it:
- Buy: tokens = SOL spent ÷ P, plus the unused SOL back (all of it if the limit was below P).
- Sell: SOL = tokens sold × P minus 1%, plus the unsold tokens back.
The keeper pays every order within seconds, eight orders per transaction. Anyone may send the payout for any order (the money only ever goes to the order's owner), and the order account's rent goes back to the owner as well. If your token account for the coin is missing, the keeper leaves your order for you: open the coin page and press Collect.
Fees
| What | Amount | Where it goes |
|---|---|---|
| Every executed order on the curve | 1% (buys on the SOL spent, sells on the SOL received) | 40% the coin's creator, 40% $BATCH buyback and burn, 20% whoever pays the order out (our keeper, or you) |
| After graduation | 1% pool fee on the Meteora pool, collected in SOL | Meteora keeps 20% as its protocol fee; the rest is claimed by the program and split 40 / 40 / 20 the same way |
| Launching a coin | 0.02 SOL | BatchPad treasury |
| Unfilled or cancelled orders | nothing | the escrow comes back whole |
Graduation
When a batch buys out the last tokens on the curve (about 85 SOL in it), the coin is complete. That batch clears at the curve's last price; if it asked for more tokens than were left, every eligible buy fills by the same fraction and gets the rest of its SOL back. Orders waiting in the next batch are refunded in full.
Then anyone can graduate the coin, and the keeper does it straight away: the program opens a Meteora DAMM v2 pool with the 206.9M reserved tokens and the curve's SOL (minus about 0.06 SOL for the pool's accounts), full range, 1% fee, and permanently locks the whole position. The position belongs to a program address that has no way to withdraw liquidity. The pool opens at the curve's final price. The two batch accounts close and their rent goes back to the creator.
After graduation the coin trades continuously on Meteora, Jupiter and every terminal. Its page keeps a born in batches record: how many batches, how many orders, one price each time.
$BATCH
$BATCH is BatchPad's own token, launched on pump.fun. 40% of every fee on the pad, before and after graduation, is swept to the keeper's buyback wallet, which buys $BATCH on its market and burns it. Every sweep, buy and burn is a public transaction.
Launching a coin
Name, ticker, picture, optional links and an optional order of your own in the opening batch. You pay 0.02 SOL plus the rent of the coin's accounts (the coin record, two batch accounts, the mint, its metadata and the token vault, about 0.09 SOL in total). The two batch accounts are the biggest part (about 0.067 SOL) and come back to you when the coin graduates. The whole supply is minted into the program's vault and the mint authority is dropped in the same transaction; metadata is immutable.
Check it yourself
| Program | not deployed yet |
|---|---|
| Meteora DAMM v2 | cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG |
| $BATCH | at launch |
- Each coin is an account at ["coin", mint]. It holds the curve (real_sol, real_tok), the open batch number, fees owed to the creator and the last 32 clearings.
- Each batch is an account at ["batch", coin, 0 or 1] with the totals of every order on every price step. You can recompute the clearing price from it with the formula above before it clears; the site does exactly that for its "if it closed now" line.
- Each clearing leaves a record at ["clear", coin, batch number] until its last order is paid, and a BatchCleared event in the transaction logs forever.
- Each order is an account at ["order", coin, batch, owner, side].
The math the site and the keeper use is the same integer code as the program, byte for byte, and every clearing in our test suite is checked against it to the lamport.
Risks
- Memecoins go to zero. A fair price is still a price for something that may be worth nothing.
- Two minutes is a long time in a fast market: the price you see is an estimate until the batch clears. Use a limit.
- Everyone sees the book. A large order in a batch invites others to join it; that is the point, and also why a limit matters.
- Clearing needs someone to send a transaction. Our keeper does it; if it ever stops, the site shows a "Clear this batch" button that anyone can press.
- The program holds escrow for every waiting order. It was tested against its own reference math and against hostile cases (fake vaults, other people's accounts, double payouts, cancelling after close), but it is new software.
Questions
Can a bot still snipe?
There is nothing to snipe. Being in the first slot of a batch buys the same price as the last slot. A bot can still buy, at the same price as you.
Can I be sandwiched?
A sandwich needs trades placed right before and right after yours at different prices. Inside a batch every trade has one price, so there is no before and after.
Why did I get fewer tokens than the preview said?
The preview is the price if the batch closed at that moment. More buys after yours raise the batch price for everyone in it, you included; more sells lower it. Your limit caps how bad it can get.
Where do I see my orders?
Under My orders, with Cancel for waiting orders and Collect for cleared ones.
None of this is financial advice: a memecoin can clear at one fair price and still fall to zero, so never put in more than you can afford to lose completely.
Home
Launch
Docs

