The zone inherits Tempo's TipFeeManager which handles fee settlement. When a user pays fees in token A but the validator (sequencer) prefers token B, the handler attempts an AMM swap — which fails on the zone since there are no Fee AMM pools.
Currently validator_tokens[sequencer] defaults to address(0), which resolves to DEFAULT_FEE_TOKEN (PathUSD). If the zone's initial token isn't PathUSD, or if users pay in a different enabled token, fee settlement breaks.
Fix: Set validator_tokens[sequencer] = initialToken in zone genesis so the common single-token case works without AMM swaps.
Longer term: Consider overriding the zone's fee handler to skip the FeeManager/AMM entirely — the sequencer is the sole block producer and can accept fees in any token directly.
Related: the Stablecoin DEX and Fee AMM precompiles are both L1-only concerns and could be removed from the zone EVM entirely.
The zone inherits Tempo's
TipFeeManagerwhich handles fee settlement. When a user pays fees in token A but the validator (sequencer) prefers token B, the handler attempts an AMM swap — which fails on the zone since there are no Fee AMM pools.Currently
validator_tokens[sequencer]defaults toaddress(0), which resolves toDEFAULT_FEE_TOKEN(PathUSD). If the zone's initial token isn't PathUSD, or if users pay in a different enabled token, fee settlement breaks.Fix: Set
validator_tokens[sequencer] = initialTokenin zone genesis so the common single-token case works without AMM swaps.Longer term: Consider overriding the zone's fee handler to skip the FeeManager/AMM entirely — the sequencer is the sole block producer and can accept fees in any token directly.
Related: the Stablecoin DEX and Fee AMM precompiles are both L1-only concerns and could be removed from the zone EVM entirely.