Next Generation Ethereum L2 Technology »
Nitro is the latest iteration of the Arbitrum technology. It is a fully integrated, complete layer 2 optimistic rollup system, including fraud proofs, the sequencer, the token bridges, advanced calldata compression, and more.
See the live docs-site here (or here for markdown docs source.)
See here for security audit reports.
The Nitro stack is built on several innovations. At its core is a new prover, which can do Arbitrum’s classic interactive fraud proofs over WASM code. That means the L2 Arbitrum engine can be written and compiled using standard languages and tools, replacing the custom-designed language and compiler used in previous Arbitrum versions. In normal execution, validators and nodes run the Nitro engine compiled to native code, switching to WASM if a fraud proof is needed. We compile the core of Geth, the EVM engine that practically defines the Ethereum standard, right into Arbitrum. So the previous custom-built EVM emulator is replaced by Geth, the most popular and well-supported Ethereum client.
The last piece of the stack is a slimmed-down version of our ArbOS component, rewritten in Go, which provides the rest of what’s needed to run an L2 chain: things like cross-chain communication, and a new and improved batching and compression system to minimize L1 costs.
Essentially, Nitro runs Geth at layer 2 on top of Ethereum, and can prove fraud over the core engine of Geth compiled to WASM.
Arbitrum One successfully migrated from the Classic Arbitrum stack onto Nitro on 8/31/22. (See state migration and dapp migration for more info).
nitro-private routes a subset of submodules (go-ethereum, wasmer)
through -private forks. First-time setup:
git clone git@github.com:OffchainLabs/nitro-private.git # no need for --recurse-submodules
cd nitro-private
make init-submodules
make check-submodulesSee docs/private-submodules.md for the
full workflow, including branch switching, the pre-push guard hook, and
the CI counterpart.
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 (as more fully described in the AEP) is contributed back to the Arbitrum community in accordance with the requirements of the AEP.
We will always support the current minor release of Nitro. Older versions of Nitro will be supported until either (shortest of):
- 30 calendar days have passed since its release and there is a newer minor release, or
- Offchain communicates a critical security concern about a version that warrants immediate upgrading to a newer, fixed version.
Visit the documentation Support policy page for more detail.
| Currently supported | Relevant links |
|---|---|
| Nitro 3.10.x | GitHub |
| Nitro 3.9.9 | GitHub |
- Only the ArbOS release that is activated on mainnet Arbitrum One will receive security updates and urgent vulnerability patches. We strongly recommend you stay up to date with the latest ArbOS since only the latest version will receive security updates. The activation timestamps for ArbOS upgrades on Arbitrum One can be found here, with the most recent entry being the ArbOS version that is actively being used on Arbitrum One.
- Alternatively, you may verify the ArbOS version on Arbitrum One using the
arbOSVersion()method on theArbSyspercompile at0x000....64. The result will be offset by 55 as the first version of Nitro is known as version 56 (e.g,. a response of 106 indicates that the ArbOS version is 51).
- Alternatively, you may verify the ArbOS version on Arbitrum One using the
- Arbitrum Classic will also continue to be supported.
Discord - Arbitrum
Twitter: Arbitrum