Compatibility with Tezos L1
The Michelson Interface is designed to behave as closely as possible to Tezos Layer 1.
Compatible features
Most of the features, including the following ones work identically to Tezos Layer 1. Therefore, users may safely refer to the linked Tezos documentation for all these aspects.
Account types
Among the types of accounts desscribed in the Tezos L1 documentation, the following are available in the Michelson interface:
| 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 |
You can find more details on Accounts in the Octez documentation.
Smart contracts
Smart contracts can be developed using the same languages as in Tezos L1 (e.g., SmartPy and LIGO).
Refer to section Smart contracts in the Tezos documentation.
RPC reference
Tezos X nodes provide the same RPCs as Tezos L1 nodes, on the Michelson endpoint (see Network parameters).
Refer to the RPC reference in the Octez documentation (also available as a set of OpenAPI descriptions).
Note however that some of these RPCs are handled differently on Tezos X, due to the different context (e.g. no delegation possible), or are not implemented yet. The complete list of the differences will be compiled here.
Tokens
Tokens defined and used in the Michelson interface generally adhere to different standards such as FA1.2, FA2, or FA2.1.
Refer to section Tokens in the Tezos documentation.
dApps
For developping distributed applications (dApps) on the Michelson interface, refer to section Dapps in the Tezos documentation.
Tezos Unity SDK
For developing games and other Unity applications on top of Tezos X you can use the Tezos Unity SDK as described in the Tezos documentation. Note that this kit can be used both with the Michelson interface and with the EVM interface on Tezos X.
Known differences
The rest of this page documents the known differences between the Michelson interface and Tezos Layer 1.
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.
Inclusion fees are burnt (on the Michelson interface)
Inclusion 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 hold 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
As a consequence of the fact that "SOURCE returns the null address for cross-interface calls" (see above), 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.
Voting power
The Michelson instructions VOTING_POWER and TOTAL_VOTING_POWER diverge from L1 at runtime as follows (but typecheck is identical):
- In Tezos X, they return a hardcoded 0
- In L1, they return the real staking weights.
The rationale is that Tezos X governance (covering the kernel and sequencer) is managed on Layer 1, by Tezos L1 bakers. There is no governance process directly on Tezos X, hence no voting power.
Unsupported features
The following features do not apply in a layer 2 context and are intentionally excluded:
- Baking, attestations, delegations, staking
- Smart Rollup operations
- Consensus and governance operations
Not yet implemented features
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
- Address indexing (feature introduced in protocol T)