Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add docs for blobs #556

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions docs/flashbots-protect/blobs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: Blobs
---

The Flashbots Protect RPC accepts blobs. You can send multiple blob transactions in a slot.

### Why use Protect

The public mempool only accepts one blob transaction per user per slot. This means rollups must guess how many blobs to include. It is also expensive to replace blob transactions.

The Flashbots private mempool accepts many blobs per user per slot. Rollups can send many blob transactions and continuously submit new blob transactions throughout the slot. There is no cost to replace blob transactions.

### How to send blobs

Send regular `eth_sendRawTransaction` requests to `rpc.flashbots.net/fast`.

The "fast" option will share your blobs with all block builders for fast inclusion. You can remove it if you only want the Flashbots builder to include your blobs. To receive customer support, include an optional query parameter "originId=your-rollup-name".

### How are blobs merged

Blobs are merged into a block based on their priority fee, the same way that regular transactions and bundles are merged. Builders will ensure no more than 6 blobs are included in a block. If different senders submit more than 6 blobs in total, the combination of blob transactions that pays the most overall will be included.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how deep in the weeds we should get here, but it might be worth mentioning that the priority fees only apply to the non-blob gas used by the transaction. Thus a tx that just sends blobs but doesn't actually use much EVM gas needs to specify a very high priority fee to be included. For example BlobScriptions only use ~21272 gas.


### Example

Rollup A has four blobs and submits four transactions:
* Tx1a: 1 blob, pays 1 ETH
* Tx2a: 2 blobs, pays 2 ETH
* Tx3a: 3 blobs, pays 3 ETH
* Tx4a: 4 blobs, pays 4 ETH

Rollup B has three blobs and submits three transactions:
* Tx1b: 1 blob, pays 2 ETH
* Tx2b: 2 blobs, pays 4 ETH
* Tx3b: 3 blobs, pays 6 ETH

Builders would include Tx3a and Tx3b in their block because the sum of their fees is highest (9 ETH).
1 change: 1 addition & 0 deletions docs/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ module.exports = {
"Flashbots Protect": [
'flashbots-protect/overview',
'flashbots-protect/quick-start',
'flashbots-protect/blobs',
'flashbots-protect/mev-share',
'flashbots-protect/cancellations',
'flashbots-protect/stuck_transactions',
Expand Down
Loading