We're starting a new open network based on the Ethereum protocol. The question is how to allocate a network id for the new network. In Ethereum we have main net, four test networks, classic with test network etc.

Is there a list of network ids? If not, let's create one.


May be there is a list of network ids? If not, let's create one.

Good idea.

  • 0: Olympic, Ethereum public pre-release testnet
  • 1: Frontier, Homestead, Metropolis, the Ethereum public main network
  • 1: Classic, the (un)forked public Ethereum Classic main network, chain ID 61
  • 1: Expanse, an alternative Ethereum implementation, chain ID 2
  • 2: Morden, the public Ethereum testnet, now Ethereum Classic testnet
  • 3: Ropsten, the public cross-client Ethereum testnet
  • 4: Rinkeby, the public Geth PoA testnet
  • 8: Ubiq, the public Gubiq main network with flux difficulty chain ID 8
  • 42: Kovan, the public Parity PoA testnet
  • 77: Sokol, the public POA Network testnet
  • 99: Core, the public POA Network main network
  • 100: xDai, the public MakerDAO/POA Network main network
  • 401697: Tobalaba, the public Energy Web Foundation testnet
  • 7762959: Musicoin, the music blockchain
  • 61717561: Aquachain, ASIC resistant chain
  • [Other]: Could indicate that your connected to a local development test network.

For any geth node to join a network there are 2 requirement one is to have the same genesis block and other is to have the same networkid. Once these requirements are satisfied, to join a network you have to know the enodeid of the nodes you want to connect to.

In case of open Ethereum networks like mainnet or testnet, you have a set of bootnodes hardcoded into your geth client where you can connect and discover other peers in the network. These bootnodes actually have a list of nodes that are connected to it in the last 24 hrs and they give out that list to you and then you can connect to those nodes. This is how you connect to other nodes in a Ethereum public network.

So if you want to create a new open network then create a genesis file, select some networkid, start some bootnodes and share these details about genesis file, networkid and list of bootnodes with the participants of network and then they will be able to join your network.

I don't think there is any constraint over which networkid to choose if we have done all the above steps correctly.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.