Bundles and blocks
What "same block" means, who provides it, and what happens on a chain that cannot.
If a token is created in one block and bought in the next, anyone watching the chain can buy in between, on a fresh curve, at the lowest price there will ever be. A bundle removes that gap.
What a bundle is
An ordered list of signed transactions handed to a block builder with one instruction: include all of them, in this order, in one block, or include none of them. Nobody can insert a transaction between them, because there is no "between". The builder places them adjacently or not at all.
The console uses this in three places:
| Where | What goes in the bundle |
|---|---|
| Token Launch | The create transaction, then every wallet's buy |
| Bundler | Many buys of a token that already exists |
| Tokens, when selling | Every wallet's sale |
The exit is the side where being read costs the most, which is why selling bundles too.
How a bundle is bid for
There is no separate tip transaction. The bid is the gas price on the transactions themselves, and the run raises it round by round:
- Start at three times the current gas price.
- Aim at a window of the next few blocks.
- If nothing landed, raise the bid by half and try again.
- Give up after six rounds, and say what the builders said.
A bundle that never lands costs nothing. It is not a failed transaction, it is a transaction that was never included, so nothing was signed onto the chain and nothing was spent.
Size limits
A builder will only take so many transactions in one bundle, and the launch and bundler forms print how many the current run would be so the limit is visible before it is hit. If a run is over, the fix is fewer wallets: split the buy across two runs, or raise each wallet's share.
On a chain with no bundle market
Not every chain has builders. Robinhood Chain has one sequencer, orders transactions first come first served, and reports a priority fee of zero, so ordering cannot be bought at any price.
The console does not pretend otherwise. Where atomicity exists there it is inside a single transaction: a launch goes out as one call that creates the token and runs every buy, so nothing can land in the middle of it. The wallets' later sales cannot work that way, because each wallet holds its own tokens and only that wallet can authorise moving them, so those go one after another and the log says so.
A launch that creates in one transaction and buys in the next hands the first block to whoever is watching. On a chain with no bundle market that is unavoidable for anything after the launch itself, so size the creator's own buy accordingly: it is the only one guaranteed to be first.
One address, one transaction
A bundle is applied in order against one state, so two transactions from the same address in
the same bundle carry the same nonce, and the second one is invalid. The builder does not drop it.
It refuses the whole bundle, with nonce too low, at any bid, every round.
The common way to hit this is a creator wallet that is also saved in the funded wallet book: it would send the create and then a buy. The console drops it from the buys and says so in the log, because the creator has already bought inside the create transaction, ahead of everyone else.
Sending without a bundle
Turning the atomic switch off, or running on a chain that has no builder, sends the same transactions through a private relay where one exists, rather than the public mempool. That hides them from anyone watching pending transactions, but it does not make them atomic: they land in whatever order the chain gives them, and something else can land in between.
When a bundle does not land
| Message or symptom | What it means |
|---|---|
nonce too low: address ..., tx: 0 state: 1 | Two transactions from one address. Usually the creator is also in the buyer book. |
| Accepted by the builders, never included, every round | Your RPC's head is behind the chain, so the target window has already passed. |
the most this deployment can send in one is N | The run is over the bundle size limit. Use fewer wallets. |
| An insufficient funds message | A wallet cannot cover its buy plus the full gas limit at the escalated bid. |