Bundling¶
A submission's transaction is sent only through eth_sendBundle, in one of two modes per
builder:
- Standalone: each transaction is its own bundle. A reverting transaction fails its bundle and isn't included. Any builder that takes bundles.
- Dropping: one bundle a block, every transaction listed in
droppingTxHashes. A reverting transaction is dropped and the rest land. A builder that honoursdroppingTxHashes.
Every builder gets every transaction, in its own mode. Each comes from its own account at
that account's next nonce, so it lands at most once, whichever builder wins the block; the next
block's are signed afresh. Bundles are signed (X-Flashbots-Signature) by the float, unless a
builder has an identity key of its own.
version is unset and revertingTxHashes never used. The rule relied on (rbuilder
order_commit.rs @ 6037fa7, 698–732, 824–878): a reverting or invalid transaction in
droppingTxHashes is skipped; one listed nowhere fails the bundle; a failed bundle is rolled
back whole.
A builder serving the interface itself needn't use the deployer or runner: it can include the call directly, from its own account, only where the block's state shows the payee paid. That skips the runner's CREATE2, the bulk of the overhead.