As the Goerli testnet has been deprecated, this guide is for historical reference.
Sending a message from the Ethereum chain (L1) to the Arbitrum chain (L2) does not involve the state challenge period and is as fast as the block confirmation time on L1 and L2 combined.In this tutorial, you will:
Deploy greeter contracts on Ethereum and on Arbitrum.
Send a message from the greeter contract deployed on Ethereum (L1) to the greeter contract deployed on Arbitrum (L2).
Your account will need Goerli ether on both the Ethereum Goerli testnet and the Arbitrum Goerli testnet as you will deploy a contract on each of the chains.
Ethereum Goerli faucet
Arbitrum Goerli faucet: see Nitro Goerli Rollup in the Arbitrum documentation
The default Arbitrum Goerli faucet may fund your account with 0.001 GoerliETH, which is not enough to deploy the greeter contract on L2.If you do not have enough GoerliETH on L2, you may bridge some more from the Ethereum Goerli testnet using the Arbitrum bridge.
Change to arbitrum-tutorials/packages/greeter.Install dependencies by running yarn.Set up the .env file by renaming the sample one in arbitrum-tutorials/packages/greeter:
cp .env-sample .env
In the .env file, add your account key and the endpoints:
DEVNET_PRIVKEY — the private key of your account that has GoerliETH both on the Ethereum Goerli testnet and the Arbitrum Goerli testnet.
L2RPC — the Chainstack HTTPS endpoint of your Arbitrum node deployed on the Arbitrum Goerli testnet.
L1RPC — the Chainstack HTTPS endpoint of your Ethereum node deployed on the Ethereum Goerli testnet.
Deploy the contract and send the message from L1 to L2
You are now all set to run the tutorial script that will deploy the greeter contracts and send a message from L1 to L2.In arbitrum-tutorials/packages/greeter, run:
Then the retryable ticket will be redeemed and change the state in the greeter contract on L2 with the message from the greeter contract on L1. Example.
This tutorial guided you through the basics of creating and deploying a simple greeter contract that sends a message from the Ethereum chain to the Arbitrum chain. The tutorial also provided the examples and an explanation of the step-by-step state changes and the contracts involved in the L1 to L2 messaging.