Solana
Simulated route
$124.50 model
Example
Ethereum
Private bundle
$840.12 model
Example
BNB
Liquidation test
$45.20 model
Example
Base
Arbitrage test
$12.05 model
Example
Solana
Jito bundle
$310.00 model
Example
Polygon
Route check
$8.45 model
Example
Solana
Simulated route
$124.50 model
Example
Ethereum
Private bundle
$840.12 model
Example
BNB
Liquidation test
$45.20 model
Example
Base
Arbitrage test
$12.05 model
Example
Solana
Jito bundle
$310.00 model
Example
Polygon
Route check
$8.45 model
Example
InfraEvaluation 阶段⏱ 5 分钟阅读

Flashbots Bundles Explained: Private MEV Execution

**Answer first** — A Flashbots bundle is an ordered group of transactions submitted via `eth_sendBundle` to a builder relay (Flashbots, Titan, beaverbuild, rsync-builder) for atomi

Flashbots bundles: private MEV execution explained
FR
FRB 团队MEV 专家
最近更新
#flashbots#private bundles#mev execution#bundle submission#privacy#relay#simulation#mev-share

Answer first — A Flashbots bundle is an ordered group of transactions submitted via eth_sendBundle to a builder relay (Flashbots, Titan, beaverbuild, rsync-builder) for atomic inclusion in a target block. The whole bundle either lands together or none of it does — there's no partial fill. Submission is sealed (other searchers can't see your bundle in any public mempool) and can include hints like revertingTxHashes (tx that's allowed to revert without invalidating the bundle), targetBlockNumber / maxBlockNumber (inclusion window), replacementUuid (resubmission of same logical bundle), and refundRecipient (where MEV-Share kickbacks go). The single most common mistake is conflating the user-protection RPC (Flashbots Protect, for normal wallet users) with the searcher relay (relay.flashbots.net, for eth_sendBundle) — they're different products with different endpoints, different auth, and different semantics. Both have "Flashbots" in the name; only one accepts bundles.

Mastery path

What a bundle actually contains

A bundle is a JSON envelope sent over HTTPS to a relay. The minimum payload:

  • txs — array of signed RLP-encoded transactions, in execution order.
  • blockNumber — target block (hex). This is the block the bundle targets for inclusion.

Optional but commonly used:

  • minTimestamp / maxTimestamp — tighten the inclusion window to a real-time band.
  • revertingTxHashes — list of tx hashes that are allowed to revert. Without this, any revert in any tx invalidates the entire bundle.
  • replacementUuid — replace a previously-submitted bundle with same UUID (not all relays support).
  • refundRecipient — for MEV-Share-aware bundles; where to send any kickback.
  • refundPercent — what fraction of MEV to share back to the trigger user.

Each tx in txs is just a normal signed Ethereum transaction. The bundle itself is not a transaction — it's a wrapper instructing the builder how to handle the txs collectively.

The bundle lifecycle

  1. Searcher constructs the bundle — typically: signed trigger reference + signed strategy tx(s).
  2. Searcher simulates with eth_callBundle against the next-block target. If unprofitable, drop.
  3. Searcher submits with eth_sendBundle to one or more relays. Sealed at the relay layer.
  4. Relay validates schema + runs simulation + forwards to participating builders.
  5. Builders evaluate whether including the bundle improves their block value over the next-best alternative. If yes, include.
  6. Proposer (validator) chooses which builder's block to publish — they pick whichever pays them the most.
  7. Bundle lands if the chosen builder's block contained it. Otherwise: not included.

A bundle that doesn't land in the target block is just gone — there's no retry by default. Searchers either accept the miss or resubmit (with the same or updated parameters) for a later target block.

Why "private" doesn't mean what most people think

A bundle is private at the public-mempool layer. It's still visible to:

  • The relay you submitted to (Flashbots, Titan, etc.).
  • The builders the relay forwards to (each relay forwards to a different set).
  • The validator that proposes the block, once a builder includes the bundle.

So "private" means "not in eth_subscribe('newPendingTransactions')." Other searchers don't see it; the relay's builder set does. This matters: if you're submitting to a single relay with a single builder, you're trusting that builder and that relay with your strategy in a way that the public mempool would not have required.

The relay-vs-RPC distinction

The Flashbots ecosystem confusingly has two endpoints with similar branding:

Product Endpoint What it accepts Who uses it
Flashbots Protect RPC https://rpc.flashbots.net Standard transactions (eth_sendRawTransaction) Wallet users wanting MEV protection
Flashbots Relay https://relay.flashbots.net Bundles (eth_sendBundle) Searchers submitting bundles

A eth_sendBundle to the user RPC fails. A wallet swap sent to the relay also fails. The two products serve different audiences and aren't interchangeable. The full discussion is in Best Ethereum private RPCs.

Multi-builder fan-out is now the default

Flashbots is no longer the only block builder. As of 2026 the major builders include:

  • Flashbots — historically dominant, still significant share.
  • Titan — among the largest by current block share.
  • beaverbuild — high share for high-priority blocks.
  • rsync-builder — reliable secondary.
  • bloXroute — commercial relay with global infrastructure.

Single-relay submission means you're betting that your relay's builder wins the next slot. That's a 30–60% blind spot depending on the day. Modern serious searchers fan-out: same bundle submitted to four+ builders simultaneously, with the first inclusion winning. The FRB Agent does this fan-out automatically with weights that adjust based on per-relay inclusion success.

MEV-Share: the OFA layer

MEV-Share is a separate Flashbots-built protocol for Order Flow Auctions. It exposes pre-execution hints about pending transactions (a swap is happening, here's the rough size and pool, but not the exact details) so searchers can build OFA-aware bundles that reward the original user with a refund.

Key MEV-Share concepts:

  • Hints — partial info about pending txs published to a hint stream. Searchers subscribe to the hints, not the full transactions.
  • Bundles referencing hints — your bundle includes the trigger user's hashed tx ID as a backrun reference; the relay matches it on inclusion.
  • Refund — when the bundle lands, a fraction of MEV is returned to the trigger user via refundRecipient / refundPercent.

MEV-Share is its own subscription endpoint with its own schema. Submitting an MEV-Share-style bundle to a regular Flashbots relay (or vice versa) silently fails. Different products, different rules, but conceptually adjacent.

Common bundle mistakes

  • Forgetting revertingTxHashes. A multi-tx bundle where one tx is expected to possibly revert (e.g., probe-and-retry) gets the whole bundle invalidated unless those txs are flagged.
  • Wrong targetBlockNumber. Off-by-one or hex-vs-decimal confusion. The relay rejects.
  • Submitting to a relay your tx fee is uncompetitive for. Builders prioritise by value. A bundle with 1 gwei priority fee on top of a packed block won't be included regardless of which relay forwarded it.
  • Single-relay submission. Leaves 30–60% of block share unreachable.
  • Re-submitting at same block without replacementUuid. Some relays treat resubmission as a new bundle; some treat it as duplicate. Use replacementUuid if the relay supports it; otherwise track which bundles are pending for which target block manually.
  • Confusing eth_sendBundle and eth_sendRawTransaction. Different methods, different endpoints, different intent.

Working configuration

A modern searcher's bundle path:

  1. Build bundle with appropriate hints (revertingTxHashes, refundRecipient if MEV-Share, target block, max block).
  2. Simulate via eth_callBundle against the target block. Drop if unprofitable.
  3. Fan-out via eth_sendBundle to Flashbots + Titan + beaverbuild + rsync-builder simultaneously.
  4. Wait one block. If not included, re-evaluate (state may have moved): drop or resubmit.
  5. Log inclusion source per bundle.

FRB Agent implements this end-to-end with per-relay inclusion tracking that auto-tunes the fan-out weights over time.

References

阅读后的下一步

启动 FRB 控制台

连接您的钱包,通过 6 位 PIN 码配对节点客户端,然后分配上述合约。

需要安装程序?

下载并验证 FRB

获取最新安装程序,将 SHA‑256 与 Releases 对比,然后按照安全启动清单操作。

查看 Releases 和 SHA‑256
分享𝕏 推特in LinkedInf Facebook

相关文章

延伸阅读与工具

讨论

暂无笔记。添加第一条观察,或在以下平台与团队分享链接 X (@MCFRB).

留下笔记
笔记仅存储在您的本地浏览器中。

掌控脉动

扩展您的执行能力

通过探索完整的 FRB 工具包来最大化您的优势。从机构级遥测到随时可导出的策略脚本。

CTA

安装 FRB 代理

下载经过验证的 Windows 版本并检查 SHA-256。

CTA

阅读快速入门文档

与运营和合规团队分享 15 分钟的设置流程。

CTA

启动控制面板

配对节点客户端并实时监控 Ops Pulse。

准备进化了吗?

迈出下一步

无论您是在验证终端安全,还是在启动您的第一个交易包,FRB 之旅都从这里开始。

推荐

安装 FRB 代理

安全的 Windows 版本,通过 SHA-256 验证以确保最高完整性。

推荐

阅读快速入门文档

15 分钟掌握设置流程:从钱包配对到第一个交易包。

推荐

启动控制面板

实时监控您的 Ops Pulse 并管理交易路由。