Solvers
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:
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 sendervalue—0data— empty
When Blink receives this, it:
Detects it is a cancel signal (not a real transaction)
Looks up the original transaction by
(sender, nonce)in cacheRemoves the original transaction from the auction
Forwards
eth_cancelBundlerequests to all active builders for the next 3 blocks
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_sendRawTransactioneth_sendBundleeth_cancelBundle
eth_sendBundle
Submit a bundle targeting a specific block. Blink fans the bundle out to all active builders.
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:
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:
replacementUuid must match exactly what was set in the original eth_sendBundle call. If no matching bundle is found in cache, the cancellation is still forwarded to builders but has no effect on Blink's internal state.
Last updated