You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/base-chain/flashblocks/faq.mdx
+16-2Lines changed: 16 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ For a comprehensive introduction to how Flashblocks work, see the [Flashblocks O
28
28
<Accordiontitle="Why is my transaction having trouble getting included?">
29
29
Transactions with large gas limits (> ~18.75M gas, which is 1/10 of the ~187.5M block limit) may have longer inclusion times. This is because the builder allocates gas cumulatively—each Flashblock `j` can use up to `j/10` of the total block gas limit. Large transactions can be included once enough cumulative capacity exists.
30
30
31
-
See [Gas Allocation](/base-chain/flashblocks/overview#gas-allocation) for the full breakdown.
31
+
See [Gas & Transaction Sizing](/base-chain/flashblocks/app-integration#gas-&-transaction-sizing) for the full breakdown.
32
32
</Accordion>
33
33
34
34
<Accordiontitle="How do I ensure my transaction is in the first Flashblock?">
@@ -87,6 +87,20 @@ For a comprehensive introduction to how Flashblocks work, see the [Flashblocks O
87
87
This is expected. When the previous block takes longer to build, the system compensates by allocating less time to the next block, resulting in fewer Flashblocks.
88
88
</Accordion>
89
89
90
+
<Accordiontitle="Can the Flashblock index exceed 10? Is that a bug?">
91
+
**No, it is not a bug.** Seeing indices of 10, 11, or higher is expected behavior.
92
+
93
+
The standard math — 2-second block time ÷ 200ms per Flashblock — gives exactly 10 Flashblocks (indices 0–9). In practice, however, the transition from one full L2 block to the next is not always perfectly synchronized with the 200ms timer. Two things can cause extra indices:
94
+
95
+
1.**Sequencer delay:** If the sequencer takes slightly longer than 2000ms to finalize and seal the full block, the Flashblock stream continues emitting incremental updates for the current block to keep the stream live.
96
+
2.**Timing drift:** If the internal 200ms clock drifts or starts early relative to the L2 block's canonical start time, an extra update can fit within the 2-second window.
97
+
98
+
**What this means for your implementation:**
99
+
- Do not hardcode `9` or `10` as the final index — the last Flashblock for a given block is not predictable by index alone.
100
+
- Watch the `payloadId` instead. The most reliable signal that a block has finished is when `payloadId` changes, or when the full block is confirmed via standard RPC. All Flashblocks sharing the same `payloadId` belong to the same block, regardless of how high the index goes.
101
+
- Once the sequencer advances to the next block, `payloadId` resets and `index` returns to `0`.
102
+
</Accordion>
103
+
90
104
<Accordiontitle="What encoding format is the transaction data in?">
91
105
Transaction data in the [`diff.transactions`](/base-chain/flashblocks/api-reference#diff-object) array is Recursive Length Prefix (RLP) encoded.
92
106
</Accordion>
@@ -128,7 +142,7 @@ For a comprehensive introduction to how Flashblocks work, see the [Flashblocks O
128
142
|`eth_subscribe`| Stream Flashblock data in real-time (Beta) |
129
143
|`base_transactionStatus`| Check if transaction is in mempool (Beta) |
130
144
131
-
See [App Integration](/base-chain/flashblocks/app-integration#rpc-api-reference) for full examples.
145
+
See the [Flashblocks API Reference](/base-chain/flashblocks/api-reference) for full method details and examples.
0 commit comments