During the initial development of Blink, searchers will need to be onboarded for access. Searchers should reach out to for access.
You can connect to Blink's WebSocket via wss://ethauction.blinklabs.xyz/ws/v1/{$API_KEY}.
Transactions received via Blink's RPC endpoint will be exposed on the websocket with the signatures removed. They will take the following form.
Copy {
"type": "transaction_message",
"payload": {
"tx_hash": "0x71f6000fa5010015370c8fea1d5cc9842ebe6ca211a7dbeabe89e8a20fa236ca",
"tx_from": "0x1f9090aae28b8a3dceadf281b0f12828e676c326",
"tx_to": "0xa47167b4ef1eb584069fa9dbd3e7bba651eb4f19",
"tx_nonce": 72,
"tx_data":"0x5ae401dc00000000000000000000000000000000000000000000000000000000635907d7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000c4f3995c67000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000008f0d1800000000000000000000000000000000000000000000000000000000063590c7b000000000000000000000000000000000000000000000000000000000000001c4f112977efe9df15f9cb1a871fcc2dc55e19af96b8054e9699b98fbc988db3795abe5cfc63293fc678b725973377e9e5bf20ece23e4e15ee6151a3aa86e7bd3d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000002b591e99afe9f32eaa6214f7b7629768c40eeb390000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000a9a59afc80393c52cac7e4edb569936550e955f50000000000000000000000000000000000000000000000000000000008f0d1800000000000000000000000000000000000000000000000000000004c81028983000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"tx_gas_limit": 21000,
"tx_gas_price": 64803106236,
"tx_max_fee_per_gas": 64803106236,
"tx_max_priority_fee_per_gas": 1500000000,
"tx_value": 100000000000000,
"chain_id": 1
}
}
When the transaction is exposed on the websocket the Searcher should determine if there is any value in the transaction and if there is submit a bid . You can continue to submit bids on the transaction until it is included on-chain.
Note there is an option for originators to obfuscate the "tx_from" value.
The transaction will be sent as a private transaction to builders after being exposed on the WebSocket.
Copy type TransactionEvent struct {
Type string `json:"type"`
Payload TransactionMessage `json:"payload"`
}
type TransactionMessage struct {
TxHash string `json:"tx_hash"`
TxFrom string `json:"tx_from"`
TxTo string `json:"tx_to"`
TxNonce int `json:"tx_nonce"`
TxData string `json:"tx_data"`
TxGasLimit uint64 `json:"tx_gas_limit"`
TxGasPrice *big.Int `json:"tx_gas_price"`
TxMaxFeePerGas *big.Int `json:"tx_max_fee_per_gas"`
TxMaxPriorityFeePerGas *big.Int `json:"tx_max_priority_fee_per_gas"`
TxValue *big.Int `json:"tx_value"`
ChainId *big.Int `json:"chain_id"`
}