Update intrinsic gas configuration for fee abstraction

Dear Celo Community,

In light of recent tokenomic discussions, this proposal updates the intrinsic gas configuration for stablecoin fee currencies on Celo, specifically USDT and USDC, based on observed execution costs on Celo Mainnet.

Background

Celo supports fee abstraction, allowing users to pay transaction fees in approved fee currencies such as USDT, USDC, and Mento-issued stablecoins. Each fee currency is registered in the FeeCurrencyDirectory contract with an intrinsicGas parameter, representing the baseline gas overhead required for the creditGasFees and debitGasFees operations when fees are paid in that currency.

Motivation

The current intrinsic gas setting of 50,000 for both USDT and USDC is insufficient relative to their actual gas consumption. While the protocol allows transactions to consume up to three times the configured intrinsic gas (and logs these events), recent measurements make clear that these stablecoin fee payments consistently exceed the current baseline.

This proposal corrects this mismatch by updating the registry with intrinsic gas values that more accurately reflect real-world execution costs. This ensures that stablecoin fee transactions are priced appropriately, preventing systematic undercharging and improving protocol revenue alignment.

Proposal Summary

This proposal updates the intrinsic gas parameters for USDT and USDC as follows:

Token Current Intrinsic Gas Proposed Intrinsic Gas
USDT 50,000 85,000
USDC 50,000 128,000

By adopting these updated values, the network will more accurately account for the true cost of stablecoin fee payments while maintaining support for fee abstraction and stablecoin-denominated gas fees.

As always, we welcome the community’s feedback. Thank you for your continued support.

8 Likes

I calculated how much that would increase the tx cost in USD. With the current minimum base fee and CELO price, I get the following increases:

>>> gas_increase = 85_000 - 50_000
... celo_price = 0.08
... min_base_fee = 25 * 10**9
... price_increase = gas_increase * min_base_fee * celo_price / 10**18
...
>>> "{:f}".format(price_increase)
'0.000070'

0.00007 USD (0.007 cent) increase for USDT and analogously
0.000156 USD (0.0156 cent) increase for USDC per tx using it as fee currency

3 Likes