Learn how utilize a Custom Gas Token for OP Stack chains.
Custom Gas Token (CGT) enables OP Stack chains to use any asset as their native fee currency instead of ETH.
This opens up new possibilities for chain operators to align their economic model with their specific use case, whether that’s using a stablecoin for predictable fees, a governance token for ecosystem alignment, or creating an entirely new native asset.This iteration of CGT is a redesign that prioritizes flexibility, minimal core protocol changes, and future-proof standardization by decoupling native asset management from core bridging infrastructure.
On L1: Placed in SystemConfig, instructs OptimismPortal, L1CrossDomainMessenger, and L1StandardBridge to reject transactions containing ETH value (msg.value)
On L2: Located in L1Block, prevents ETH-related operations in L2ToL1MessagePasser, L2CrossDomainMessenger, L2StandardBridge, and FeeVaults
This enables native asset mints and burns to be decoupled from deposits and moved to the application layer.
Custom Gas Token v2 was introduced in Upgrade 18 and is available in op-contracts/v6.0.0.
Aspect
Legacy CGT
CGT v2
Token basis
Anchored to L1 ERC-20
Independent native asset at genesis
Flexibility
Restricted to specific configurations
Supports any release mechanism
Bridging
Built into core contracts
Application-layer responsibility
Supply control
System transaction minting
Minter authorization model
Adaptability
Limited post-deployment changes
Upgradeable and flexible
Migration from legacy CGT: There is currently no migration path from legacy CGT to CGT v2. A migration path is planned to be put together. Chains using the previous CGT design will need to coordinate a hard fork to adopt the new architecture.
Decoupled from core components: Since native asset management is decoupled from core components, obtaining native assets might vary chain-by-chain. That means that bridging, conversions, and features utilized would be different. It’s suggested to create some library or templates that cover basic uses cases (e.g., L2-native, bridging from L1) to standardize most implementations.
Chain Governors are encouraged to audit their implementations.
Developers would need to look at the chain’s docs to understand how to obtain native assets.
Ideally CGT Chain Operators can work together to formalize a common set of CGT patterns that don’t come out of the box.
No unified API: The flexibility of this implementation means each CGT chain may have different methods for obtaining native assets
ETH bridging: ETH bridging routes through L1-WETH as an ERC-20 wrapper
Documentation: Clear documentation becomes critical for users to understand how to acquire native assets
Flag alignment: isCustomGasToken must match between L1 and L2 to prevent protocol violations
Fee parameters: minBaseFee and operatorFee must accurately account for execution and data availability costs in the native token’s denomination
Decimal support: CGT currently supports only 18-decimal tokens.
ERC20s with different decimals require custom logic to handle rounding when converting between the token and the native asset.