Overview

Deterministic block placement lets searchers and protocols execute their bundles after specific addresses have changed state in the block. The builder monitors the watched addresses during block construction and places the bundle once all of them have been touched at least once.

This is useful when your strategy depends on reacting to state changes made by other transactions — for example, executing after a DEX pool rebalances, after an oracle updates, or after a liquidation modifies a lending protocol's state.

How It Works

  1. The searcher submits a bundle via eth_sendDeterministicBundle with a list of watched addresses and a target block.

  2. The builder constructs the block with regular orderflow.

  3. As transactions execute, the builder tracks which watched addresses have been touched.

  4. Once all watched addresses have been touched at least once, the builder attempts to place the bundle.

  5. If the bundle execution fails, the builder may reattempt placement after additional state changes to the watched addresses.

  6. If none of the watched addresses are modified by other transactions, the bundle is not included in the block.

Use Cases

  • DEX arbitrage — execute after a pool's reserves change from a swap or liquidity event

  • Liquidations — act after a lending protocol's state is updated by a price oracle or repayment

  • Protocol settlement — settle after dependent contracts have been modified by other transactions

  • State-dependent strategies — any strategy that needs to execute with knowledge that specific addresses have been touched

Compatibility

Deterministic bundles use the same base parameter format as eth_sendBundle — including replacementUuid, revertingTxHashes, and refund parameters — with an additional required watchedAddresses field. Cancel with eth_cancelBundle.

Rate Limits

Standard order flow rate limits apply. Contact the Eureka team to request higher limits for production integrations.

API Methods

Method
Description

Submit a bundle placed after watched addresses change state

All requests are sent as JSON-RPC 2.0 POST to:

Last updated