Skip to content

Latest commit

 

History

History
53 lines (31 loc) · 3.01 KB

README.md

File metadata and controls

53 lines (31 loc) · 3.01 KB

Arbitrum Nitro Rollup Contracts

This is the package with the smart contract code that powers Arbitrum Nitro and Espresso integration. It includes the rollup and fraud proof smart contracts, as well as interfaces for interacting with precompiles.

Deploy contracts to Sepolia

1. Compile contracts

Compile these contracts locally by running

git clone https://github.com/offchainlabs/nitro-contracts
cd nitro-contracts
yarn install
yarn build
yarn build:forge

2. Setup environment variables and config files

Copy .env.sample.goerli to .env and fill in the values. Add an Etherscan api key, Infura api key and a private key which has some funds on sepolia. This private key will be used to deploy the rollup. We have already deployed a ROLLUP_CREATOR_ADDRESS which has all the associated espresso contracts initialized.

If you want to deploy your own rollup creator, you can leave the ROLLUP_CREATOR_ADDRESS empty and follow the steps on step 3.

If you want to use the already deployed RollupCreator, you can update the ROLLUP_CREATOR_ADDRESS with the address of the deployed rollup creator here and follow the steps on step 4 to create the rollup.

3. Deploy Rollup Creator and initialize the espresso contracts

Run the following command to deploy the rollup creator and initialize the espresso contracts.

npx hardhat run scripts/deployment.ts --network sepolia

This will deploy the rollup creator and initialize the espresso contracts.

4. Create the rollup

Change the config.ts.example to config.ts and update the config specific to your rollup. Then run the following command to create the rollup if you haven't already done so.

npx hardhat run scripts/createEthRollup.ts --network sepolia

Deployed contract addresses

Deployed contract addresses can be found in the espress-deployments folder.

License

Nitro is currently licensed under a Business Source License, similar to our friends at Uniswap and Aave, with an "Additional Use Grant" to ensure that everyone can have full comfort using and running nodes on all public Arbitrum chains.

The Additional Use Grant also permits the deployment of the Nitro software, in a permissionless fashion and without cost, as a new blockchain provided that the chain settles to either Arbitrum One or Arbitrum Nova.

For those that prefer to deploy the Nitro software either directly on Ethereum (i.e. an L2) or have it settle to another Layer-2 on top of Ethereum, the Arbitrum Expansion Program (the "AEP") was recently established. The AEP allows for the permissionless deployment in the aforementioned fashion provided that 10% of net revenue is contributed back to the Arbitrum community in accordance with the requirements of the AEP.