Skip to main content

Tezos ➡️ EVM

Sharing the state from Tezos to EVM involves interacting with two contracts (a State Aggregator and a Proof Validator).

The 📒 State aggregation contract acts as a database and proof generator for other contracts in the Tezos ecosystem. It produces a snapshot of a Merkle tree every X blocks, where the root node of the tree is used to validate all the proofs for the given snapshot.

The origin contract address is included on every added state to authenticate the proofs on the EVM chain.

The Merkle root of every snapshot is then transmitted to an EVM contract (👮‍♂️ Proof Validator), which allows the contracts on the EVM environment to validate the proofs of ✉️ states added on Tezos at a given snapshot.

This step can be done from any Tezos chain to any EVM chain.

  • Tezos ➡️ Ethereum
  • Tezos ➡️ Polygon
  • Tezos ➡️ Binance Smart Chain
  • Tezos ➡️ Avalanche
  • Tezos ➡️ Moonbeam
  • Tezos ➡️ Astar

EVM ➡️ Tezos

Sharing the state from an EVM chain to Tezos requires the EVM chain to be EIP-1186 enabled and a Tezos (👮‍♂️ Proof Validator) contract capable of validating EIP-1186 storage proofs.

The state transmitter first asks the Tezos (👮‍♂️ EIP-1186 Proof Validator) which snapshot/block_level it is expecting, then queries the Merkle root of that snapshot/block_level and sends it to the validator.

Applications can then leverage EIP-1186 for producing storage proofs of EVM contracts that get validated on Tezos.

Supported chains:

  • Tezos ➡️ Ethereum
  • Tezos ➡️ Polygon
  • Tezos ➡️ Binance Smart Chain