Skip to main content

MEV-Share

Introduction

MEV-Share allows users to gain up to 90% of the MEV that their transactions create. By default, Protect users' transactions are sent to Flashbots MEV-Share Node, which returns them up to 90% of the MEV that their transactions create. By default, Protect users will be connected with the Stable configuration, which is continuously tuned by Flashbots to optimize execution while protecting users from harmful MEV. This document guides users on the nuances and configurations of MEV-Share.

Flashbots MEV-Share Node maintains a Stable configuration that is continuously optimized to attempt to give users better execution while protecting them from harmful MEV. All users need to do to benefit is to send transactions to Flashbots Protect.

Advanced users can exert more control over their transactions and preferences through the advanced panel or by manually setting up their Protect RPC request.

Protect RPC Reference

In the Protect RPC, preferences are passed as query parameters within the URL. This encompasses hints about your transaction, the builders your transaction is directed to, and how potential refunds are to be distributed if your transaction gets bundled.

Hints

For a custom hint setup, specify the hint parameter to determine which data from your transaction is visible to searchers. If no hints are specified, the default Stable hint configuration is used. If one or more hint is specified, any hint not specified is disabled.

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 hash (or bundle hash if sending a bundle). To use full privacy mode, share this hint and this hint alone. The hash will always be shared if other hints are shared.
tx_hashShare individual tx hashes in the bundle.

Here is an example:

https://rpc.flashbots.net?hint=calldata&hint=logs&hint=hash

Builders

To specify which builders will receive your transactions, the builder parameter can be specified multiple times. The below builders are supported.

NameRPC

Please note that while adding other builders increases your inclusion rate it does mean you are trusting them. Here is an example of how to use the builder parameter:

https://rpc.flashbots.net?builder=flashbots&builder=XYZ

Refunds

Customize your refund configuration with the refund parameter, determining which addresses should receive what fraction of the searcher's payment if they bundle your transaction. If left unmentioned, tx.origin (the originator of the transaction) will receive 90% of the searcher's payment.

The refund parameter contains two colon-separated values: an address for the refund and the percentage of the searcher's payment to be refunded. To distribute the payment across multiple addresses, append a new refund parameter for each.

All percentages in the refund parameters must total less than 100. The remaining percentage, inferred from 100 - total refund percentages, is the payment to the validator. Note that keeping a larger percentage of the refund may result in longer inclusion times, because it reduces the payment to the validator.

Here is an example:

https://rpc.flashbots.net?refund=userAddr:10

Common configurations

Stable Configuration

The Stable configuration is the default configuration for Protect RPC. No query parameters are specified to use it.

https://rpc.flashbots.net

Currently, this configuration shares the following information:

  • The hash of all transactions
  • Partial logs (the pool id and the fact that a swap was made) for curve, balancer, and uniswapV2/V3-style trades
  • Transactions are only forwarded to the Flashbots block builder

This may change over time as we gather more data and fine-tune the configuration to maximize benefits.

Full Privacy

To use Protect with full privacy, set only the hash hint in your Protect RPC URL:

https://rpc.flashbots.net?hint=hash

This ensures that all identifiable transaction data sent to MEV-Share Node remains hidden from searchers.

Examples

Here are some examples of configurations that you might choose, depending on your goals.

Goal
Flashbots Protect RPC URL
Stablehttps://rpc.flashbots.net
Max Privacyhttps://rpc.flashbots.net?hint=hash
Low privacyhttps://rpc.flashbots.net?hint=calldata&hint=logs&hint=hash
Add Builders (share with other builders for faster inclusion)https://rpc.flashbots.net?builder=flashbots&builder=XYZ
Change Refund (send more to validator for faster inclusion)https://rpc.flashbots.net?refund=userAddr:10