Skip to content
Last update: June 9, 2022

Genesis file items

The GoQuorum genesis file contains network configuration items and genesis block parameters.

Configuration items

Network configuration items are specified in the genesis file in the config object.

Item Description
Milestone blocks Milestone blocks for the network.
chainId Chain ID for the network.
istanbul Network uses IBFT or QBFT. This option is being deprecated and will be removed in a future release. Use ibft or qbft instead.
ibft Network uses IBFT and contains IBFT configuration items.
qbft Network uses QBFT and contains QBFT configuration items.
clique Network uses Clique and contains Clique configuration items.
txnSizeLimit Maximum transaction size. The default is 64 (kilobytes), increased from Ethereum’s default 32. This is configurable up to 128.
maxCodeSize Maximum smart contract code size. The default is 32 (kilobytes), increased from Ethereum’s default 24. This is configurable up to 128.
isQuorum Set to true to enable geth to work as GoQuorum and make additional checks, for example, ensure the gas fee is zero.


Using the Raft consensus protocol doesn’t require a specific item in the config object.

Genesis block parameters

The purpose of some genesis block parameters varies depending on the consensus protocol (IBFT, QBFT, Raft, or Clique). These parameters include:

  • difficulty.
  • extraData.
  • mixHash.

The following table describes the genesis block parameters with the same purpose across all consensus protocols.

Item Description
coinbase Address to pay mining rewards to. Can be any value in the genesis block (commonly set to 0x0000000000000000000000000000000000000000).
gasLimit Block gas limit. Total gas limit for all transactions in a block.
nonce Used in block computation. Can be any value in the genesis block (commonly set to 0x0).
timestamp Creation date and time of the block. Must be before the next block so we recommend specifying 0x0 in the genesis file.
alloc Defines accounts with balances or contracts.

Milestone blocks

In public networks, the milestone blocks specify the blocks at which the network changed protocol.

Ethereum Mainnet milestone blocks

  "config": {
    "homesteadBlock": 1150000,
    "daoForkBlock": 1920000,
    "daoForkSupport": true,
    "eip150Block": 2463000,
    "eip150Hash": "0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0",
    "eip155Block": 2675000,
    "eip158Block": 2675000,
    "byzantiumBlock": 4370000,
    "constantinopleBlock": 7280000,
    "constantinopleFixBlock": 7280000,

In private networks, the milestone block defines the protocol version for the network.

Private network milestone blocks

  "config": {
    "constantinopleFixBlock": 0,


When specifying the milestone block for private networks, you only need to specify the latest milestone. It is implied this includes the preceding milestones.

Back to top