Auction Transaction Feed
Introduction
Introducing Auction Feed, a WebSocket-RPC based subscription data feed that delivers transaction-related data from the 48Club RPC service. Unlike traditional pending transaction subscriptions, Auction Feed focuses specifically on backrun opportunities, providing only the target hashes of these opportunities and the relevant logs and EVM state changes after simulation.
The tracked targets may be individual transactions or bundles, but this distinction is unimportant, as the searcher only needs to assess whether a backrun opportunity exists based on the logs or state changes triggered by the target. When you submit a SendBundle with a target hash, the server automatically prepends the target transaction to the front of your bundle.
How to Subscribe
Subscribing to Auction Feed push notifications requires no complex third-party packages. You can achieve this using go-ethereum. Simply connect to our WebSocket RPC service and subscribe to either the newAuctions
or newAuctionsWithStates
event, depending on the data you need.
How to SendBundle
To submit a bundle that includes a backrun opportunity, use the eth_sendBundle method with the backrunTarget parameter configured.
Please note that if the target’s gas price is below 1 gwei, it will not be considered a public pool transaction, so you must include it in your bundle’s average gas price calculation to meet the 1 gwei requirement. However, if the target’s gas price exceeds 1 gwei, you should not factor it into your bundle’s average gas price, as it is treated as a public pool transaction.
Data Format
Due to the high frequency of updates, we use gzip compression on the raw data to minimize transmission size and enhance delivery speed. This ensures efficient handling of the Auction Feed’s frequent push notifications.
Example code for decompressing gzip data
Subscription to newAuctions
newAuctions
This provides essential data to check what a transaction has triggered. It is sufficient for arbitrage strategies, such as those on Uniswap v2 liquidity pools, without requiring simulation.
hash
string (0x hash)
The auction target ID
gas_used
uint64
The gas used by the target
gas_price
string
The gas price of the target
logs
[] logData
The logs produced in target simulation
exp: logData.address
string (0x address)
exp: logData.topics
[] string (0x hash)
exp: logData.data
string (0x data)
Note: if the target gas_price is below 1 gwei, you should included it into your bundle's average GasPrice calculation. Check here.
Subscription to newAuctionsWithStates
newAuctionsWithStates
This provides advanced data for simulation-based strategies. You can create a state from the current moment and apply the state changes provided in the data. Then, begin your simulation as though it were happening in real time on the target transaction.
You have to sign current unix timestamp string by your 48SoulPoint EOA Example code here
How to apply state changes on current StateDB Example code here
newAuctionsWithStates
has all data innewAuctions
, plusstates
below
`states`
map[str(1)]map[str(2)]str(3)
The state key/value changes on all state objects.
exp: states.str(1)
string (0x address)
The address of changed state object
exp: states.str(2)
string (0x hash)
changed Key in a changed state object
exp: states.str(3)
string (0x hash)
changed Value of Key
Last updated