Skip to main content

Wallet/Dapp Integration Guide

This guide covers the essential steps for wallet & dapp developers to send transactions to MEV-Share.

What's MEV-Share?

MEV-share is a protocol that lets users, wallets, and dapps to capture the MEV their transactions create.

You can submit your orderflow to the Flashbots Matchmaker to internalize the MEV generated by your transactions.

What's a matchmaker?

A matchmaker is a service that matches user transactions with searcher bundles. Flashbots runs matchmakers on Ethereum Mainnet and Goerli. Users submit their transactions to the matchmaker, which shares select information about transactions with searchers. Searchers propose transactions for the matchmaker to bundle with the user transactions (currently we only support backruns). The matchmaker forwards these bundles to a block builder with a requirement that the user is paid a kickback; a percentage of the winning searcher's bundle profit.

How to Integrate

The Flashbots Matchmaker is accessible through the Flashbots Protect RPC.

Send Orderflow to Protect RPC

Route your application's eth_sendRawTransaction calls to the Protect RPC rpc.flashbots.net to connect to the matchmaker. By default, connecting to Protect will enable the matchmaker with the Stable configuration, which is set by Flashbots to give users the best possible execution.

Set Privacy Configuration

To specify a custom privacy configuration, options are passed as URL query params. These params currently include hints and builders.

Hints specify which data fields in the user's transactions are shared with searchers on MEV-Share. The following hints are currently available:

HintDescription
calldataShare data sent to the smart contract (if applicable) by the transaction. The function selector and contract address will also be shared if the calldata is shared.
logsShare logs emitted by executing the transaction.
function_selectorShare the 4-byte identifier of the function being called on the smart contract by the transaction. The contract address will also be shared if the function selector is shared.
contract_addressShare the address of the recipient of the transaction; typically a smart contract.
hashShare the transaction (or bundle) hash. To use full privacy mode, share this hint and this hint alone. The hash will always be shared if other hints are shared.

Specifying builders permits the specified builders to use your orderflow to build blocks.

caution

Adding other builders can make users' transactions land on-chain faster and more reliably, but note that Flashbots does not control how other builders operate and makes no guarantees about their behavior.

The following builders are currently supported. By default, orderflow is only routed to the Flashbots block builder.

NameRPCSupported APIs

We strongly recommend experimenting to find the right hints for you and your users. We are eager to partner with your data and product teams to find the best balance.

Example

Connecting to RPC with this configuration would share logs and function selectors, and send transactions only to Flashbots:

https://rpc.flashbots.net?hint=logs&hint=function_selector&builder=flashbots

To learn more about configuring Flashbots Protect, see the Flashbots Protect RPC docs.

What are the guarantees and benefits?

The matchmaker will bundle user transactions with each valid searcher backrun and submit them to a dedicated Flashbots builder. The builder will choose the winning bundle and transfer 90% of the searcher's payment to msg.sender of the user's transaction.

If no valid backruns are submitted, the transaction will be treated as a regular Protect transaction and receive all the typical benefits of Flashbots Protect.

What are the risks?

This is a beta release of the Flashbots matchmaker. The matchmaker service may experience service interruptions and there may be API breaks during the trial phase.

By default, the matchmaker shares no transaction information with searchers other than the transaction hash. This is unlikely to result in the largest possible kickback. You can customize your request to share additional information and we will closely monitor and update the defaults where needed.

Next steps

We are exploring a number of improvements. For instance — customizable kickback percentage & recipients (which would allow wallets or dapps to take a cut), more privacy settings & per-protocol defaults, and more expressive execution preferences (allowing searchers to submit bundles that contain more than simple backruns).

The Flashbots Matchmaker is one implementation of the MEV-share protocol. We are also actively designing standard interfaces for the protocol as a whole.

Help improve MEV-Share

Join us in discussing the latest APIs by creating an Issue or Pull Request on github/flashbots/mev-share.