Genesis

The genesis.json file in $TMHOME/config defines the initial TendermintCore state upon genesis of the blockchain (see definition).

Fields

  • genesis_time: Official time of blockchain start.
  • chain_id: ID of the blockchain. This must be unique for every blockchain. If your testnet blockchains do not have unique chain IDs, you will have a bad time.
  • validators:
  • pub_key: The first element specifies the pub_key type. 1 == Ed25519. The second element are the pubkey bytes.
  • power: The validator’s voting power.
  • name: Name of the validator (optional).
  • app_hash: The expected application hash (as returned by the Commit ABCI message) upon genesis. If the app’s hash does not match, a warning message is printed.
  • app_state: The application state (e.g. initial distribution of tokens).

Sample genesis.json

{
  "genesis_time": "2016-02-05T06:02:31.526Z",
  "chain_id": "chain-tTH4mi",
  "validators": [
    {
      "pub_key": [
        1,
        "9BC5112CB9614D91CE423FA8744885126CD9D08D9FC9D1F42E552D662BAA411E"
      ],
      "power": 1,
      "name": "mach1"
    },
    {
      "pub_key": [
        1,
        "F46A5543D51F31660D9F59653B4F96061A740FF7433E0DC1ECBC30BE8494DE06"
      ],
      "power": 1,
      "name": "mach2"
    },
    {
      "pub_key": [
        1,
        "0E7B423C1635FD07C0FC3603B736D5D27953C1C6CA865BB9392CD79DE1A682BB"
      ],
      "power": 1,
      "name": "mach3"
    },
    {
      "pub_key": [
        1,
        "4F49237B9A32EB50682EDD83C48CE9CDB1D02A7CFDADCFF6EC8C1FAADB358879"
      ],
      "power": 1,
      "name": "mach4"
    }
  ],
  "app_hash": "15005165891224E721CB664D15CB972240F5703F",
  "app_state": {
    {"account": "Bob", "coins": 5000}
  }
}