same block bundling

Understanding how Flap Bundle achieves same-block transaction inclusion.

How It Works

1

Pre-sign transactions

All transactions in a bundle are pre-signed locally with correct nonces.

2

Broadcast simultaneously

All raw signed transactions are sent to the RPC at the same moment via Promise.all.

3

Inclusion by validators

Validators pick up the transactions and include them in the next available block(s).

Transaction Independence

Each transaction in the bundle uses a different account:

  • Deploy TX → deployer wallet (nonce N)

  • Fee TX → deployer wallet (nonce N+1)

  • Buy TX 1 → bundle wallet 1 (nonce 0)

  • Buy TX 2 → bundle wallet 2 (nonce 0)

  • ...

Since each buy uses a different wallet address with its own nonce, they can all be included in the same block without conflicts.

RPC Types

Public RPC

When using a public RPC (Infura, Ankr, default BSC RPC):

  • Transactions go to the public mempool

  • Validators pick transactions in any order

  • No guarantee of same-block inclusion

  • Buys typically land within 1–3 blocks of the deploy

  • Still effective — tokens are bought at near-initial prices

Private / Builder RPC

When using a private RPC (48Club, Bloxroute):

  • Transactions are submitted directly to block builders

  • Builders can include all transactions in a single block

  • Near-guaranteed same-block inclusion

  • Best protection against front-running and sniping

Configuring Private RPC

Set the BSC_PRIVATE_RPC_URL environment variable in the backend:

Provider
Description

48Club

BSC block builder with bundle support

Bloxroute BDN

MEV protection + transaction bundling

Marlin

BSC relay service

Block Verification

After a bundle executes, the app verifies which blocks each transaction landed in:

  • All same block — all transactions in one block

  • ⚠️ Spread across blocks — transactions in nearby blocks

The verification result is shown in the Launch step after completion.

BSC Block Time

BSC produces blocks every ~3 seconds. Even without a private RPC, broadcasting all transactions simultaneously means they'll likely be included in the next few blocks — well before any external snipers can react.