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.
Compile these contracts locally by running
git clone https://github.com/offchainlabs/nitro-contracts
cd nitro-contracts
yarn install
yarn build
yarn build:forge
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.
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.
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 can be found in the espress-deployments folder.
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.