Skip to main content

Bundle guarantees

Ordering, atomicity, and revertibility guarantees for Signet bundles, and how they connect to cross-chain Orders.

A Signet bundle is a Flashbots-style transaction bundle (EthSendBundle) with one extra field, hostTxs — raw host-chain transactions that the builder executes alongside the bundle’s rollup transactions.

hostTxs is how a Filler provides the host side of an Order, or runs other actions on Ethereum. Transactions that pay the user on Ethereum get included in the same block that moves the user’s tokens on Signet. Signet’s state-transition ensures that an Order cannot be included unless filled. And the bundle system allows the Filler to ensure that a Fill is included alongside an order.

Guarantees

Block builders must preserve three guarantees when including a bundle:

  • Ordering — transaction order within txs and within hostTxs is preserved.
  • Atomicity — the bundle lands as a contiguous run of transactions on each chain, or not at all. Host and rollup sides are committed together. In practice, this means that the block builder MUST use a private mempool.
  • Revertibility — by default, a transaction that fails invalidates the entire bundle. The revertingTxHashes field opts specific rollup tx hashes out: a hash listed there is allowed to fail, and the builder drops just that transaction and continues.

“Fail” covers two cases, treated identically:

  1. The EVM reverts the transaction.
  2. The transaction places an Order that no fill in the bundle covers.

Host transactions are not eligible for revertingTxHashes. A reverting host transaction always kills the bundle — the host side of an Order cannot be optional.

What makes a bundle valid

For a bundle to be accepted by the transaction cache and considered by the builder:

  • All transactions must be syntactically correct.
  • txs must contain at least one rollup transaction.
  • EIP-4844 blob transactions are not supported in txs.

Invalid bundles are rejected before or during block building; they are never partially included.

ESC

Start typing to search documentation...

Navigate Select ⌘K Open