Skip to main content

chainConfig reference

The full chainConfig contains the standard Ethereum genesis/fork fields, but the Chain SDK's prepareChainConfig() only exposes a small subset for customization. Everything else is filled from hardcoded defaults and should not be changed.

When you call prepareChainConfig, you pass a chainId (top-level) and an arbitrum object where InitialChainOwner is required and the fields below are optional overrides.

Example:

import { prepareChainConfig } from '@arbitrum/chain-sdk';

const chainConfig = prepareChainConfig({
chainId: 123_456,
arbitrum: {
InitialChainOwner: '0xYourChainOwnerAddress', // required
// Optional overrides (defaults shown):
InitialArbOSVersion: 51,
DataAvailabilityCommittee: false,
MaxCodeSize: 24576,
MaxInitCodeSize: 49152,
},
});

Customizable fields (via prepareChainConfig)

FieldTypeDescription
chainIdnumberRequired. The unique chain ID for your chain.
InitialChainOwnerstringRequired. Address that owns the chain and holds upgrade/admin privileges.
InitialArbOSVersion51The ArbOS version the chain launches with.
DataAvailabilityCommitteefalsefalse = Rollup (L1 data posting); true = AnyTrust (DAC)
MaxCodeSize24576Max deployed contract bytecode size in bytes (default matches Ethereum's EIP-170 limit).
MaxInitCodeSize49152Max init/constructor code size in bytes (default matches EIP-3860).

Intentionally not customizable

prepareChainConfig deliberately excludes Arbitrum-specific fields so they keep their defaults:

FieldTypeDescription
EnableArbOStrueMust stay enabled.
GenesisBlockNum0Genesis block number.
AllowDebugPrecompilesfalseDebug precompiles; must stay disabled.

Standard fields

For informational purposes only

The following fields are populated automatically from the SDK's hardcoded defaults. They are standard Ethereum genesis/fork-activation parameters and are not exposed for customization by prepareChainConfig.

Changing these fields can produce an invalid or non-functional chain configuration.

Leave them at their default values.

FieldDefaultDescription
homesteadBlock0Block at which the Homestead fork activates.
daoForkBlocknullDAO fork block (disabled).
daoForkSupporttrueWhether the chain supports the DAO fork rules.
eip150Block0Activation block for EIP-150 (gas cost changes).
eip150Hash0x0000…0000Hash associated with the EIP-150 fork.
eip155Block0Activation block for EIP-155 (replay protection).
eip158Block0Activation block for EIP-158 (state-clearing changes).
byzantiumBlock0Activation block for the Byzantium fork.
constantinopleBlock0Activation block for the Constantinople fork.
petersburgBlock0Activation block for the Petersburg fork.
istanbulBlock0Activation block for the Istanbul fork.
muirGlacierBlock0Activation block for the Muir Glacier fork.
berlinBlock0Activation block for the Berlin fork.
londonBlock0Activation block for the London fork.
clique.period0Clique PoA block period (seconds).
clique.epoch0Clique PoA epoch length.