How to take part in Etherlink

Chris Pinnock
Etherlink Community
9 min readMay 29, 2024

What is Etherlink?

The Tezos blockchain has a feature called Smart Rollups. A rollup is a means of processing transactions away from the main blockchain. The transactions are “rolled up,” and the rollup state is sent to the main chain regularly.

A Smart Rollup is a rollup managed by a piece of code that processes transactions. The code format is Web Assembly (WASM), but other formats will soon be supported.

To run the rollup, infrastructure providers run Smart Rollup Operators. These process the rollup and reconcile it with the main blockchain. The Smart Rollup software can be run in different modes to perform specific rollup operations. In this article, we will focus on the Operator and Observer modes.

The rollup and the infrastructure to run it are often referred to as “layer 2,” while the main blockchain is “layer 1.”

The applications of Smart Rollups include many use cases, such as:

  • Taking the load off the main blockchain and reducing congestion by processing transactions off-chain
  • Minimizing transaction costs by moving the transactions off-chain.
  • A private layer 2 network only accessible by authorized institutions
  • A rollup to record transactions specific to an organization for performance reasons
  • An implementation of an alternative virtual machine environment to Tezos’s.

Etherlink is an example of the final use case above. It is an Ethereum Virtual Machine (EVM) compatible rollup on the Tezos blockchain. It leverages the security of the Tezos network and has very low fees to use.

It is designed to be attractive to Ethereum users who can easily move their applications. Additional software provides the interoperability layer from EVM to Tezos.

Since October 2023, it has been available as a test product on Tezos’s Ghostnet test network. In Q2 2024, the core team will launch it on Tezos’s Mainnet.

This article discusses Etherlink as a developer, user, or infrastructure provider.

As a user

As you would expect, you can send and receive coins on the Etherlink network. You can use Ethereum wallet software like Metamask to create a wallet and manage the funds. The wallet address is an Ethereum address, but the coin is called Etherlink XTZ. It is distinct from XTZ on the Tezos network. However, swapping XTZ coins between the networks is possible using a bridge. On the test network Ghostnet, you can also get funds from the Etherlink faucet.

Once you have coins on the Etherlink network, you can use Etherlink dApps. Let’s use the Metamask wallet in Chrome to set up a wallet on Etherlink.

Firstly, install Metamask from the Chrome Store. Only use the official version from the store. Create a wallet, taking care to record your password and record your wallet passphrase. It’s important to keep these safe, especially if you use the wallet for real tokens.

On the top left corner, click “Ethereum Mainnet”. Select “Add network”. Then, choose “Add a network manually” at the bottom of the list.

Fill out the details from the Etherlink network you want to join. Here are the details for reference, but please see the Etherlink documentation site for the latest information:

Etherlink Testnet            
RPC URL https://node.ghostnet.etherlink.com
Chain ID 128123
Currency symbol XTZ
Block Explorer https://testnet-explorer.etherlink.com

Etherlink Mainnet
RPC URL https://node.mainnet.etherlink.com
Chain ID 42793
Currency symbol XTZ
Block Explorer https://explorer.etherlink.com

Below, we join the test network on Ghostnet:

Once this is set up, you have an address on Etherlink with 0 XTZ. You can now fund the wallet. On Mainnet, you can do this by swapping XTZ using a bridge. On Ghostnet, you can do the same or use the faucet. Here, we use the faucet.

Go to https://faucet.etherlink.com and connect the MetaMask wallet by clicking “Connect Etherlink to Metamask”:

Once connected, you can click the button to obtain 0.1 XTZ as below:

I did this twice, and now I have 0.2 XTZ in my wallet:

At the time of writing, https://bridge.etherlink.com provides limited transfer capability from Ghostnet to the test Etherlink rollup. I went to the Ghostnet faucet at https://faucet.ghostnet.teztnets.com/ and obtained 900 XTZ. Then, I connected my Tezos wallet to the bridge and swapped 800 XTZ to my Etherlink wallet.

The next version of the bridge will offer the ability to swap coins back and forth between the Tezos mainnet and Etherlink. This will be shortly after the launch on Mainnet.

You can examine the activity on Etherlink using the Block Explorer at https://testnet-explorer.etherlink.com/ for the test network and https://explorer.etherlink.com/ for the main network. The explorer shows all the details about the transactions on the rollup. You can search the explorer using transaction IDs and account names, among other things.

There is a community of builders working on Etherlink dApps. One notable application is TachySwap, a decentralized exchange (DEX) built on Etherlink. This provides the ability to swap XTZ with other coins on Etherlink. Additionally, you can add liquidity pools of coin pairs and receive the fees from trades on the DEX.

As a developer

Etherlink has been created by design for Ethereum developers as it is fully EVM-compatible. You can port smart contracts and Ethereum dApps with little effort. An Ethereum developer has the benefit of a familiar development environment and the secure, low-cost and constantly evolving Tezos network.

I was able to deploy a Smart Contract very quickly using the Remix tool at the Ethereum.org website. This tool is an online Ethereum Smart Contract development environment.

I’m not a Smart Contract expert, so I used an example based on one from the Solidity by Example website. This is a simple Smart Contract written in Solidity, one of Ethereum's high-level Smart Contract languages. Compiling the contract will simply return “Hello Etherlink!” when called with the “Greet” method. We will see this below.

// SPDX-License-Identifier: MIT
// compiler version must be greater than or equal to 0.8.24 and less than 0.9.0
pragma solidity ^0.8.24;
contract HelloEtherlink {
string public greet = "Hello Etherlink!";
}

I quickly created a new file called 4_HelloEtherlink.sol in the contracts directory. I clicked the Green play button to compile it.

Once saved, I used the Deploy screens. First, I changed the Environment to “Injected Provider—Metamask.” From there, Remix used my Metamask wallet I created in the previous section.

Then, I deployed the contract. This requires signing a transaction using Metamask. On the bottom left, I ran the contract using the Greet method. And if you look closely, you will see it returned “Hello Etherlink”. This is also in the debug console at the bottom.

This is incredibly easy. The contract needed no modifications to run on Etherlink, so an Ethereum developer will be able to develop on Etherlink straight away.

The Etherlink website also has instructions on deploying smart contracts on Etherlink using Hardhat.

As an infrastructure provider

The Components

The infrastructure software is part of the Octez suite, the reference Tezos implementation. The Smart Rollup is managed by the Octez Smart Rollup node octez-smart-rollup-node. It can be run in several modes—we will look at Observer and Operator modes.

The Octez EVM node software octez-evm-node implements the Ethereum Virtual Machine compatibility. It handles operations and records them on the Etherlink rollup. The software can run in two modes:

  • Sequencer— provides a full sequencer capability. It orders operations and submits them to the Tezos rollup. It also provides an EVM-compatible endpoint.
  • Sequencer Observer — provides a high-latency endpoint that forwards transactions to the Sequencer.

The Smart Rollup Operator submits transactions to the main chain using an Octez node.

The Tezos Foundation provides a snapshot service with snapshots for Etherlink at https://snapshots.eu.tzinit.org/etherlink-mainnet/. The snapshots provide an initial data source for the Smart Rollup Operator.

Running a Smart Rollup Observer

A Smart Rollup Observer joins the Smart Rollup and records the state onto the local disc. The Observer is used to keep a copy of the rollup in a new location. It’s possible to run an Observer at the cost of running infrastructure. You will need to connect to a Tezos node to connect to the rollup.

At the moment, there is no incentive to run an Observer, but it is an easy way to be a good citizen on the Etherlink network. Like running a standalone node on layer 1, it maintains a copy of the rollup data.

Details on how to set up a Smart Rollup Observer can be found in this article.

Running a Smart Rollup Operator

A Smart Rollup Operator is a full participant in the rollup. It stores the state of the rollup locally but also submits transactions to the rollup. It participates in the consensus mechanism. Additionally, it watches for bad behavior on the rollup. The setup of the Operator is very similar to the Observer, but you will also need:

  • 10,000tz for a security bond for the rollup
  • Funds for batching and submitting transactions

The keys for the funds can be stored behind a remote signer for protection.

The security bond is a guarantee against your operator behaving badly. However, if you are running the official software, this is unlikely to happen. It is there to prevent providers from running malicious software on the rollup.

The batching funds are usually split over several keys. This allows multiple transactions simultaneously on the same layer 1 block.

At the moment, the rollup model does not offer incentives for Smart Rollup Operators, but infrastructure providers usually have a vested interest in running them.

Details on how to set up a Smart Rollup Operator can be found in this article.

Running a Sequencer

The Sequencer’s purpose is to order transactions and submit them to the rollup. It also provides a “Remote Procedure Call” endpoint that implements the full EVM AP as reliably as possible. The Etherlink users and applications do not directly interface with the rollup. They interface with an endpoint.

Initially, the sequencer operator will be chosen by the Tezos bakers as part of the Etherlink decentralised governance process. If you are an infrastructure provider interested in participating, please contact the team at reachout@etherlink.com.

Running a Sequencer Observer

The Sequencer Observer, also called a Low-latency Endpoint, provides an endpoint for wallets and applications to interact with Etherlink. The transactions are batched up and forwarded to the sequencer, which processes them.

You can run a Sequencer Observer for the cost of the infrastructure. It can connect to the Sequencer directly or to another public Sequencer Observer. I will be writing a document on this soon.

Further information

More information is available on Etherlink at the main website. Updates are also posted on X. For users, developers and builders, there is a community Discord. The Business Development team can be reached at reachout@etherlink.com.

Acknowledgments

Many thanks to Sasha Aldrick, Raffael Kuhn, Thomas Letan, Tim McMackin, Aaron Mallet, Yann Regis-Gianas, and Fabrice Trutmann, who helped and made suggestions for the article.

--

--

Chris Pinnock
Etherlink Community

Crypto. Blockchain. IT Infrastructure. Languages. I do stuff on Tezos ꜩ.