PerformanceBlog
Tempo MCP serverGive agents search and read tools for Tempo docs
Skip to content
LogoLogo

Execution & Gas

This page specifies how Tempo Zones handle gas accounting, fee collection, and token management. For deposit and withdrawal flows, see the bridging specification. For balance visibility and access control rules, see the accounts specification.

Fee Tokens

Tempo Zones reuse Tempo fee units and gas accounting. Each transaction includes a feeToken field. Any enabled TIP-20 token with USD currency is valid for gas payment. The sequencer accepts all enabled tokens directly, so no Fee AMM is needed.

Deposit Fees

Deposits charge a fixed processing fee in the deposited token:

fee = FIXED_DEPOSIT_GAS × zoneGasRate

FIXED_DEPOSIT_GAS is fixed at 100,000 gas. The sequencer configures zoneGasRate through ZonePortal.setZoneGasRate(). The fee is deducted from the deposit amount and paid to the sequencer on Tempo Mainnet.

Withdrawal Fees

Withdrawals charge a processing fee in the withdrawn token:

fee = gasLimit × tempoGasRate

The user specifies gasLimit to cover processing and any callback execution. The sequencer configures tempoGasRate through ZoneOutbox.setTempoGasRate().

Fixed Gas Costs

All user-facing TIP-20 transfer and approval operations cost exactly 100,000 gas. This removes gas-based information leaks tied to storage state. On a standard EVM chain, gas varies based on whether a transfer writes to a previously empty storage slot, revealing whether the recipient has received tokens before. Fixed costs eliminate that side channel.

FunctionGas Cost
transfer(to, amount)100,000
transferFrom(from, to, amount)100,000
transferWithMemo(to, amount, memo)100,000
transferFromWithMemo(from, to, amount, memo)100,000
approve(spender, amount)100,000

System functions (systemTransferFrom, transferFeePreTx, transferFeePostTx) retain standard gas costs. Only restricted system callers can invoke them, so the gas side channel does not apply.

Contract Creation Disabled

Tempo Zones currently disable the CREATE and CREATE2 opcodes. Each Tempo Zone runs a fixed set of system contracts and predeploys. Any transaction that attempts contract creation reverts.

Token Management

Policy inheritance from mainnet to zone

The sequencer manages which TIP-20 tokens are available on a Tempo Zone:

FunctionBehavior
enableToken(token)Enables a TIP-20 token for bridging and gas payment. Irreversible.
pauseDeposits(token)Stops new deposits for the token. Withdrawals continue.
resumeDeposits(token)Restarts deposits for a previously paused token.

Once enabled, a token cannot be disabled. This preserves withdrawals for that token, subject to the token's own compliance policy. Tokens on the Tempo Zone use the same address as their Tempo Mainnet counterpart. ZoneInbox mints on deposit, ZoneOutbox burns on withdrawal. No mechanism exists to create new tokens on the Tempo Zone.