Skip to main content

Orbit FAQ

Can I use Orbit to deploy a mainnet chain?

Yes! Arbitrum Orbit's core technology has undergone a comprehensive audit and is now able to support deployments to mainnet. You can read more about it here.

How can I deploy an Orbit-based Layer 3 (L3) chain?

Check our Quickstart to learn how to launch your own Orbit chain today.

Do I need permission/license to launch an Orbit chain?

You can permissionlessly launch an L3 Orbit chain that settles to one of Arbitrum's Layer 2 (L2) chains. There is an emerging licensing structure will soon make it possible to permissionlessly launch an L2 Orbit chain that settles directly to Ethereum. Please get in touch with the Arbitrum Foundation or Offchain Labs for more information.

Note that launching a testnet doesn't require any license.

Does Arbitrum officially deploy and/or maintain L3s for external teams?

No. Teams are required to deploy and maintain their Orbit chains. There are, however, several RaaS (Rollup as a Service) providers that can deploy and maintain the Orbit chain for you.

Can I modify Orbit's underlying technology to customize my chain?

Yes, you can make any changes you require to the underlying Nitro code base.

What Data Availability (DA) solutions are currently available for Orbit chains?

Arbitrum Orbit currently supports 3 different DA solutions:

  • Rollup, posting data to the parent chain which ultimately posts the data to Ethereum.
  • AnyTrust, posting data to a Data Availability Committee, selected by the chain owner.
  • Celestia, posting data to Celestia network.

Note that using AnyTrust gives the chain owner the most flexibility and cheapest fees.

What token is used to pay gas fees on Orbit chains?

By default, Orbit chains pay gas in ETH. However, Orbit chains using AnyTrust can be configured to use any ERC-20 token as the gas fee token of the chain.

Can I use Ethereum toolkits to develop on my Orbit chain?

Orbit chains are fully EVM-compatible. Most tools that support Ethereum should be able to support an Orbit chain. There are, however, certain differences that developers need to keep in mind when building on an Orbit chain. You can find them here.

Do Orbit chains have any built-in AA solution?

Not by default, but they can be customized to have native AA.

Is there any cross-chain bridging solution between two Orbit chains?

There is currently no Orbit-to-Orbit native bridging solution, other than going through the parent chain (if they share the same parent chain). However, there are many third-party bridges that have expressed interest in supporting Orbit chains.

Is there an official block explorer for Orbit chains?

Orbit chains deployments usually come with an open-source blockscout explorer by default, but there are many third-party solutions that have expressed interest in supporting Orbit chains.

Is there any indexing solution that supports Orbit chains?

Similar to bridges and block explorers, there are many third-party indexing solutions that have expressed interest in supporting Orbit chains.

Can I increase the maximum contract size for my Orbit chain?

Yes, but only on testnets for now. You can use our Orbit SDK (available for deployments on testnet), and configure the parameters MaxCodeSize and MaxInitCodeSize when calling prepareNodeConfig.

How can I modify Nitro to force posting an invalid assertion and test the fraud proof mechanism?

Forcing an invalid assertion in the chain is not supported at the moment. However, if you're building Nitro locally, you can run the following test that goes through the whole rollup/challenge mechanism:

go test ./system_tests/ -tags=challengetest -run=TestChallenge

What fee collectors can be configured on my chain?

There are 4 fee types that can be configured on an Orbit chain:

  • L2 base fee: L2 execution fees corresponding to the minimum base price of the chain. This is paid to the infraFeeAccount, which can be set by calling ArbOwner.setInfraFeeAccount().
  • L2 surplus fee: L2 execution fees above the minimum base price (in the case of congestion). This is paid to the networkFeeAccount, which can be set by calling ArbOwner.setNetworkFeeAccount().
  • L1 base fee: Relative fees for posting a transaction on the parent chain. This is paid ultimately to the fee collector of the active batch poster. The batch poster can be set by calling SequencerInbox.setIsBatchPoster() on the parent chain. And a different fee collector for that batch poster can be specified by calling ArbAggregator.setFeeCollector().
  • L1 surplus fee: Any extra fees rewarded to the batch poster. This is paid to a specific L1RewardRecipient, which can be set by calling ArbOwner.setL1PricingRewardRecipient()

More detailed information about fees can be found in the L1 fees and L2 fees pages.

Information about the precompiles methods can be found in the Precompiles reference page.