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

Example code here

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.

FieldFormatDescription

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

Example code here

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 in newAuctions, plus states below

FieldFormatDescription

`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