Searchers

Searching on Base works a bit differently to Ethereum as there is no builder market.

WebSocket Subscriptions

WebSocket Connection

Connect to Blink's WebSocket endpoint:

wss://baseauction.blinklabs.xyz/ws/v1/{$API_KEY}

Transaction Subscription

The V1 WebSocket requires an explicit subscription to begin receiving transaction data. Send the following message after connecting:

{
    "method": "eth_subscribe",
    "params": ["blink_partialPendingTransactions"]
}

Submitting Bids

Submit bids to:

https://baseauction.blinklabs.xyz/v1/{$API_KEY}

Bundles are submitted using the eth_sendBundle RPC call:

{
    "id": 1,
    "jsonrpc": "2.0",
    "method": "eth_sendBundle",
    "params": [
        {
            "txs": [ 
                "txHash",     // Target transaction hash
                "rawTxHex"    // Your transaction in raw hex format
            ],
            "bidWei": "0x2386f26fc10000"  // Your bid amount in wei
        }
    ]
}

Auction Mechanics

Bundle Submission

  • Transactions are ordered by the sequencer based on priority fee / gas

  • Searchers should set prio fee to be equal to the target transaction prio fee. Transactions with a higher prio fee will be rejected.

  • While we ramp up on Base, we're asking Searchers to send at least 50% of profits for us to pass back to originators. Our refund address is 0xaa29178fc9527fa1410305e52cfee950a2efcb9f

  • This "bid" can be sent in the bundle request as a "bidWei" parameter. If you don't, the bid will be assumed to be 0 and will only be sent if there are no other bids.

  • Searchers must not send directly to the sequencer (this is monitored)

  • Any sandwiching will result in immediate ban (strictly monitored)

Timing and Inclusion

  • The auction starts 300ms BEFORE the previous block time.

  • Bundles are held until approximately 1400ms into the block (next block inclusion probability drops after this). At this point, the highest bundle is sent.

  • Transactions after this time will only be sent if no other bids exists

As an example:

Block 25722682 confirmed at unix timestamp (ms) of 1738234711000

  • Auction for 25722682 starts at 1738234711000 - 2000 - 300 = 1738234708700

  • Previous block (25722681) confirmed at 1738234709000

  • Auction finishes at 1738234711000 + 1400 = 1738234712400

In general, auctions always start 700ms after an even second and finish 400ms after the next even second (where base blocks are on odd seconds).

We are in AWS us-east-1 if you want to optimise latency.

Due to nature of Base, we can't enforce auctions rules are followed in real time. For this reason, we've invested a lot in our monitoring. We monitor:

  • Sandwiches of our transactions

  • Searchers sending directly to sequencer

  • Searchers sending to both us and directly

  • Profit passed back as percentage (should be > 50%)

  • Difference between bid and amount passed back

  • Revert rates (especially after big competitive bids)

Breaches (depending on severity) could include:

  • Reduced Flow

  • Delay on websocket

  • Complete Ban

Last updated