Bundles and Orders
Bundles coordinate cross-chain actions
We extend Flashbots bundles with a single field: hostFills
. This connects Signet transactions with Ethereum actions:
1{
2 "txs": ["0xabc...", "0xdef..."],
3 "blockNumber": "0x123",
4 "hostFills": {
5 "outputs": [...],
6 "permit": {
7 }
8 }
9}
This straightforward extension enables atomic cross-chain execution: the Signet transactions and the necessary host chain actions either all succeed together or the entire bundle fails.
Bundle Structure
A Signet bundle includes:
- An array of transactions (
txs
) - Block targeting information (
blockNumber
,minTimestamp
,maxTimestamp
) - Optional
revertingTxHashes
identifying Signet transactions allowed to revert without failing the whole bundle - Optional
replacementUuid
for identifying updated bundles - The
hostFills
field containing required host chain actions (if any)
Bundles come in two forms:
- With host fills:
- Contain signed orders requiring separate validation
- The bundle builder tracks and validates these orders
- Host fills ingest with bundles and pass to submission
- Without host fills:
- Standard bundles with typical transactions
- Processed like regular transaction lists
Bundle Standards
When building systems that handle real value, reliability isn’t optional. That’s why we’ve adopted flashbots-style bundle standards:
- Ordering: Transactions execute exactly as specified
- Atomicity: All operations succeed or none happen
- Revertibility: Transactions only revert when explicitly marked as revertible