Custom Gas Token v2 will become available if and when Optimism Governance approves Upgrade 18.
Until then, you can experiment with CGT v2 with op-deployer/v0.6.0-rc.2.
Key features
- Token flexibility: Use any token as the native gas token - existing L1 ERC-20s, L2-native tokens, or entirely new assets
- Application-layer bridging: No bridge or token is enshrined in the protocol; bridges and converters live entirely at the application layer
- Flexible supply management: Chain governors have complete control over token supply, emission schedules, and distribution mechanisms
- Future-proof design: Built to support emerging standards like SuperchainERC20 and cross-chain interoperability
How it works
CGT is configured at genesis and comes with two new predeploy contracts to manage native assets independently from ETH bridging:The isCustomGasToken() flag
When enabled:
- On L1: Placed in
SystemConfig, instructsOptimismPortal,L1CrossDomainMessenger, andL1StandardBridgeto reject transactions containing ETH value (msg.value) - On L2: Located in
L1Block, prevents ETH-related operations inL2ToL1MessagePasser,L2CrossDomainMessenger,L2StandardBridge, andFeeVaults
Two new predeploy contracts
NativeAssetLiquidity Holds pre-minted native assets created at genesis with two core functions:deposit(): Receives native assets (callable only by LiquidityController)withdraw(): Releases native assets to the controller
authorizeMinter()/deauthorizeMinter(): Grants or revokes minting permissionsmint(): Unlocks assets from liquidity reserves for authorized partiesburn(): Accepts native assets and locks them in the liquidity contract- Stores token metadata for wrapped asset compatibility
Use cases
- Stablecoin fees: Use USDC or other stablecoins for predictable transaction costs
- Governance alignment: Use your chain’s governance token as the gas token to align incentives
- L2-native economies: Create entirely new native assets with custom supply mechanics
- Simplified UX: Reduce the number of tokens users need to hold for interacting with your chain
Comparison with previous design
Custom Gas Token v2 was introduced in Upgrade 18 and is available inop-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 |
Developer impact
- 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
Risks and considerations
Supply management
- Minter security: Any address granted minter permissions requires thorough security review and auditing
- Access control: Misconfigurations in bridges or controllers could lead to unintended minting or burning
- Rate limiting: Consider implementing rate limits on minting velocity to reduce risk
Configuration accuracy
- Flag alignment:
isCustomGasTokenmust match between L1 and L2 to prevent protocol violations - Fee parameters:
minBaseFeeandoperatorFeemust 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.
Next steps
- For chain operators: See Deploy a Custom Gas Token chain for detailed deployment instructions