Initialize your L2
Create the environment needed to setup the L2 and use it to initialize L2 state. Generate secrets, keypairs, set environment variables, update configuration files, and then create initial balance.
Last updated
Was this helpful?
Create the environment needed to setup the L2 and use it to initialize L2 state. Generate secrets, keypairs, set environment variables, update configuration files, and then create initial balance.
Last updated
Was this helpful?
Generate a that will be used by Geth. Store this secret securely.
Example value below.
Generate two new Solana keypairs in rome-apps/docker/keys, called Rhea keypair and Proxy keypair. These keypairs will be used by the Rhea and Light Client services (explained on the next page) to sign and pay for Solana transactions.
Set Chain ID, Genesis address, and Genesis balance below.
GENESIS_PRIVATE_KEY corresponds to the GENESIS_ADDRESS.
GETH_HOST defines the URL at which the airdrop server will be started.
If you are running on a remote server, set GETH_HOST to your domain name e.g. rollup.testnet.romeprotocol.xyz instead of localhost:3000.
Note: We use the terms "Proxy" and "Light Client" interchangeably.
Check the Solana slot, and update start_slot in proxy-config.yml and rhea-config.yml (located in rome-setup/docker/cfg) with current slot.
This slot will be used by Rhea and Light Client (i.e. Proxy) to determine the rollup's current state based on Solana transaction history beginning from the start slot.
Update rhea-config.yml to set chain_id, start_slot, solana_url, geth_engine_secret, and payers.
solana rpc_url is for submitting transactions to Solana. solana_indexer rpc_url is for indexing transactions from Solana.
Update proxy-config.yml to set chain_id, start_slot, solana_url, and payers.
Specify multiple payers to increase throughput as more transactions can be executed in parallel by having more payers.
Specify fee_recipients as Ethereum addresses that will receive L2 native tokens as compensation for executing Solana transactions.
If fee_recipient is not specified, then no L2 native tokens are transferred for compensation.
Specify multiple fee_recipients to increase throughput as more transactions can be executed in parallel by having more fee recipients.
This step synchronizes initial balances of EVM contract with initial balances of OP Geth. Only the rollup owner is able to invoke this step.
Then, run the following command:
If you see an error saying "Error: RomeEvmError: Signer not found, or more than one signer was found", then make sure the airdrop worked and rollup owner keypair has sufficient balance.
Airdrop SOLs to rollup owner using so it can execute this transaction. If you are having problems with airdrop, contact us on our or .