arrows-rotateSolvers

How solvers submit transactions and bundles through Blink's Ethereum auction, including cancellation and builder-compatible API access.

Solvers are a class of originator on Blink — they submit transactions through the standard Ethereum RPC endpoint but receive specialised auction treatment. Specifically:

  • Solver transactions are forwarded to builders without a gas recovery delay

  • Solver transactions are eligible for a dedicated OFA fan-out window: Blink holds the transaction until 10 seconds into the pending slot, then fans it out to other originators only if no searcher has placed a bid. This preserves searcher exclusivity while still ensuring coverage.

There are two integration paths available to solvers:

Path
Best for

Raw transaction via RPC endpoint

Submitting individual solver transactions

Builder endpoint (/builder/v1/)

Submitting and cancelling bundles using Flashbots-compatible API


Cancelling a Transaction

Solvers can cancel a pending transaction by submitting a cancel signal — a zero-value self-transfer with the same nonce as the transaction to cancel.

A cancel transaction is defined as:

  • to — same address as the sender

  • value0

  • data — empty

When Blink receives this, it:

  1. Detects it is a cancel signal (not a real transaction)

  2. Looks up the original transaction by (sender, nonce) in cache

  3. Removes the original transaction from the auction

  4. Forwards eth_cancelBundle requests to all active builders for the next 3 blocks

circle-info

The cancel signal itself is never forwarded to builders or stored — only the resulting cancellation is propagated.


Builder Endpoint

Blink exposes a builder-compatible API at /builder/v1/<originatorId> that emulates the standard Flashbots builder interface. This lets solvers use the same bundle submission code they already use with direct-builder integrations.

The endpoint supports the following JSON-RPC methods:

  • eth_sendRawTransaction

  • eth_sendBundle

  • eth_cancelBundle

eth_sendBundle

Submit a bundle targeting a specific block. Blink fans the bundle out to all active builders.

Field
Type
Required
Description

txs

string[]

Yes

Array of signed raw transactions (hex-encoded)

blockNumber

string

No

Target block number (hex). Defaults to current block

replacementUuid

string

No

Canonical UUID string (RFC 4122); used to cancel or replace this bundle (not an arbitrary opaque string)

revertingTxHashes

string[]

No

Hashes of transactions in the bundle that are allowed to revert

maxTimestamp

number

No

Latest Unix timestamp at which the bundle is valid

Response:

circle-info

Set ?solver=true as a query parameter to enable solver-mode fan-out for bundles submitted through this endpoint.

eth_cancelBundle

Cancel a previously submitted bundle by its replacementUuid. Blink removes the bundle from its cache and forwards the cancellation to all active builders.

Response:

circle-exclamation

Last updated