I want to understand the differences between the three RPC methods, so I can know which one is best for my use case. I am currently using eth_sendRawTransaction to submit transactions to the public mempool using an Infura node and looking into flashbots/mev-boost to prevent my users from potential frontrunning. I also want to avoid any reverted transactions on the chain to save my users gas fees.

I have three options:

  1. Using eth_sendRawTransaction with the flashbots protect RPC (https://docs.flashbots.net/flashbots-protect/overview). It bundles my single raw transaction into a bundle and relays it on the flashbots relay. I am unsure how searcher reputation works in this case.
  2. Using eth_sendPrivateTransaction with the flashbots auction RPC (https://docs.flashbots.net/flashbots-auction/searchers/advanced/rpc-endpoint). It works the same as eth_sendRawTransaction, but I act as a searcher and am subject to searcher reputation. Additionally, I can set maxBlockNumber and use eth_cancelPrivateTransaction. Are there other RPCs that allow me to use eth_sendPrivateTransaction?
  3. Using eth_sendBundle with the flashbots auction RPC (https://docs.flashbots.net/flashbots-auction/searchers/advanced/rpc-endpoint). I can bundle my transaction myself and use different relays other than flashbots. But, I assume most block builders listen to the flashbots relay. Is there any advantage in using other relays?

All three methods bundle my transaction and make it not visible in the public mempool, preventing frontrunning.

Can block builders ignore the maxBlockNumber/maxTimestamp and still include my bundle if it is profitable enough for them?

Can my transaction end up on chain abiding by the maxBlockNumber/maxTimestamp, but in a reverted state, maybe because the priority fee is quite high and even a reverted transaction is profitable for the block builder? If this is the case, should I look into using coinbase.transfer (https://docs.flashbots.net/flashbots-auction/searchers/advanced/coinbase-payment) with a priority fee = 0, so that only successful transactions land on chain?

1 Answer 1


eth_sendPrivateTransaction basically a simplified way of using eth_sendBundle. You don't have to add more transactions than 1 and you don't have to resend the transaction every block. They will send it automatically every block for 25 blocks. Pretty clear.

And by send, they mean it is sent to miners privately others dont see it in the mempool.

source: https://www.reddit.com/r/ethdev/comments/12mx9z7/what_is_a_private_transaction_in_the_context_of/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.