Takers & State Stream
Searchers, solvers, and aggregators use Bombora's normal transaction and bundle APIs for PropAMM routes. No PropAMM-specific taker submission method is required.
Submit candidate routes
Construct and submit routes the same way you do for other onchain liquidity:
- Build the standard route through passive AMMs.
- Build one or more candidates that include PropAMM hops.
- Submit each candidate through
eth_sendBundle, or submit a single private taker transaction. - Set normal slippage and execution guards in the taker transaction.
State stream
The state stream publishes next-block PropAMM state for makers that opt in. It lets takers simulate routes locally before submission.
Endpoint
| Network | Region | WebSocket endpoint |
|---|---|---|
| Ethereum Mainnet | Global | wss://rpc.bombora.build/ws/pamm_quote_stream |
| Ethereum Mainnet | EU | wss://eu-rpc.bombora.build/ws/pamm_quote_stream |
| Ethereum Mainnet | US | Coming soon |
No API key is required. If the stream is not enabled for an endpoint, the WebSocket upgrade returns HTTP 503.
Snapshot format
Each text message is a complete JSON snapshot:
{
"slot": 12345678,
"blockNumber": 25000001,
"timestamp": 1785000000000000000,
"0x1111111111111111111111111111111111111111": {
"stateOverride": {
"0xda7afeed01fe625cf15d187a19f94b45f00b8c5f": {
"stateDiff": {
"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
}
}
}| Field | Description |
|---|---|
slot | Consensus slot of the target block. Omitted when not yet known, so treat it as optional. |
blockNumber | The block the overrides target, the next block. |
timestamp | Snapshot time, in Unix nanoseconds. |
0x1111… | One key per maker, carrying its stable identity. Makers rotate the pool lanes they price, so this key is not a pool address. |
↳ stateOverride | Keyed by the Priority Update Registry, always 0xda7afeed01fe625cf15d187a19f94b45f00b8c5f. |
↳ stateDiff | Storage slot to 32-byte value: the registry writes that pre-apply that maker's pending update. |
Simulating a route
A snapshot is already in Ethereum's state-override shape, so it can be passed straight to any simulation that accepts state overrides. Simulating with it prices a route against the state the block will have, rather than against what is currently onchain.
Emission
Snapshots go out as makers update their quotes. Consecutive identical snapshots are suppressed, so no message means the state is unchanged.