Compatibility with Tezos L1
The Michelson Interface is designed to behave as closely as possible to Tezos Layer 1. This page documents the known differences.
Fees
Execution and storage fees are burnt
On Tezos L1, transaction fees are credited to the baker who includes the operation. On Tezos X, execution and storage fees are burnt — there is no equivalent of a baker reward at the Michelson interface level.
DA fees are burnt (on the Michelson interface)
Data availability fees are burned from the Michelson interface's perspective. The sequencer is compensated through the EVM runtime's sequencer pool instead. This means fee balance updates in Michelson receipts do not credit any address.
Accounts
SOURCE returns the null address for cross-interface calls
When a transaction is initiated via a cross-interface call (i.e., from the EVM interface), the Michelson SOURCE instruction returns the null address tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU, not the originating EVM alias. This is because Michelson requires the source to be a user account.
Aliases cannot directly receive tez
Michelson aliases (KT1 contracts created for EVM accounts) automatically forward any tez they receive to the originating EVM account via the gateway. You cannot send tez directly to an alias address and retain it there.
Blocks
First block level may be greater than zero
If the Michelson runtime was introduced after the chain genesis, its first block will be at a level greater than zero. This differs from a fresh Tezos L1 deployment where the first block is at level 1.
Cross-interface operations appear with null source
Operations triggered by cross-runtime calls appear in Michelson runtime blocks with tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU as the source. Indexers can cross-reference with the EVM runtime block using the cross-runtime call identifier emitted by the gateway.
Tez precision
The Michelson Interface uses 6-decimal precision for tez (mutez), consistent with Tezos L1. When tez crosses to the EVM interface, it is expressed with 18-decimal precision. Values below 10⁻⁶ tez cannot be represented in mutez and will be truncated. See Accounts and Aliases for details.
Supported features
The Michelson Interface supports most features of the Tezos Seoul protocol. This section lists what is supported, partially supported, or not available.
- User account operations: reveals, transfers
- Smart contract operations: originations, calls, views
- Lazily-deserialized storage (big maps)
- Internal operations and operation batching
- Operation simulation (via the
/helpers/scripts/simulate_operationRPC)
Not supported
The following features do not apply in a layer 2 context and are intentionally excluded:
- Baking, attestations, delegations
- Smart Rollup operations
- Consensus and governance operations
Not yet implemented
The following features from Tezos layer 1 are not yet available in the Michelson Interface:
- BLS addresses (
tz4) - Ticket transfers
- Events
- Sapling
- Timelocks
- Global constants
Account types
| Address type | Status |
|---|---|
tz1 (ed25519) | ✅ Supported |
tz2 (secp256k1) | ✅ Supported |
tz3 (P-256) | ✅ Supported |
tz4 (BLS) | 🔄 In progress |
KT1 (smart contracts) | ✅ Supported |
sr1 (smart rollup) | ❌ Not supported |