Skip to content

Conversation

@niran
Copy link
Contributor

@niran niran commented Dec 4, 2025

Document the minimum base fee feature introduced with the Jovian upgrade, including benefits (faster inclusion, predictable fees, spam prevention) and current configuration values.

Document the minimum base fee feature introduced with the Jovian upgrade,
including benefits (faster inclusion, predictable fees, spam prevention)
and current configuration values.
@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Dec 4, 2025

✅ Heimdall Review Status

Requirement Status More Info
Reviews 1/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

**Solution**: The `maxFeePerGas` must cover both the base fee and your priority fee. Since the base fee can change with each block, set `maxFeePerGas` high enough to remain valid even if the base fee rises while your transaction is pending. A common approach is:

```
maxFeePerGas = baseFee * 2 + maxPriorityFeePerGas

Choose a reason for hiding this comment

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

We can probably base this on minimum doubling speed and a reasonable delay (including time to sign the tx), but this is subject to change alongside any modifications to EIP1559 parameters, including increasing elasticity.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's technically the right way to think about it, but it feels like maybe too much information for the average reader. ethers.js multiplies by 2 and viem multiplies by 1.2. I don't think anyone is doing anything more sophisticated than that.


The contract execution encountered a revert condition.

**Solution**: Check the transaction on [Basescan](https://basescan.org) to see the revert reason. Common causes include failed require statements, arithmetic errors, or invalid state transitions.

Choose a reason for hiding this comment

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

Should we explicitly identify Basescan or use the more generic explorer.base.org, which can be rerouted in the case of a service disruption.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The docs mention Basescan all over the place, so I don't think that's an avoidable problem. Changing how we refer to the block explorer makes sense, but I think we'll be better off if it's a consistent change that we make everywhere.


| Confirmation Level | Time | Description |
|-------------------|------|-------------|
| Flashblock preconfirmation | ~200ms | Transaction included in a preconfirmation |

Choose a reason for hiding this comment

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

This shows the cadence of each periodic event. Should we show average confirmation time instead, which would be ~100ms for flashblocks, and ~1s for L2 blocks?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This part is cribbed from the Transaction Finality page. I think using average times would be confusing. Most people need the upper bounds, and the people who need the average times will be able to figure it out.


## Debugging Tools

- **[Basescan](https://basescan.org)**: View transaction status, logs, and revert reasons

Choose a reason for hiding this comment

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

Same as above, although here we can maybe enumerate different explorers

Comment on lines +23 to +25
<Note>
Base has a [minimum base fee](/base-chain/network-information/network-fees#minimum-base-fee). Transactions with `maxFeePerGas` below this value will never be included, since the base fee cannot drop below the minimum.
</Note>

Choose a reason for hiding this comment

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

These sections seem misformatted in the GH diff preview. Will these render correctly in the actual docs site?

Choose a reason for hiding this comment

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

Edit: confirmed that this looks good on the staging docs site

@niran niran merged commit 05b9684 into master Dec 15, 2025
8 checks passed
@niran niran deleted the min-base-fee branch December 15, 2025 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants