Cardano Improvement Proposals


CIP 34 - Chain ID Registry

Contents

Abstract

Currently Cardano has two easily-usable networks: "mainnet" and "testnet". However, in the future, we expect more networks to exist and so we need some way to refer to these networks to be able to write better multi-network applications and systems.

Terminology

Existing network IDs

Cardano currently has three ways to refer to a network:

Motivation

Blockchains can have multiple deployments of the same codebase. For example:

  1. Test networks where the base asset has no value (so devs can test at no cost)
  2. Test networks where the protocol is simplified for ease of testing (ex: Cardano but with a Proof of Authority consensus for stable block production in testing)
  3. Test networks for new features
    1. Plutus Application Backend (PAB) testnet
    2. Shelley incentivized testnet
  4. Forks that diverge in feature set (the many forks of Bitcoin and Ethereum)

dApps may be deployed on specific testnets that match their criteria and wallets need to know about these networks to know how to behave.

Additionally, having a standardized registry for networks allows easy integration into the broader crypto ecosystem via standards like CAIP-2

Specification

We create a machine-readable registry of networks

All entries in this registry should have the following entries:

When representing these networks in a human-readable string, the following format shall be used:

cip34:NetworkId-NetworkMagic
    

Rationale

We pick this format for the following reason:

Reference implementation

CIP34-JS

This CIP is licensed under CC-BY-4.0