Genesis ======= The genesis.json file in ``$TMROOT`` defines the initial TendermintCore state upon genesis of the blockchain (`see definition `__). NOTE: This does not (yet) specify the application state (e.g. initial distribution of tokens). Currently we leave it up to the application to load the initial application genesis state. In the future, we may include genesis SetOption messages that get passed from TendermintCore to the app upon genesis. 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. - ``amount``: 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. Sample genesis.json ~~~~~~~~~~~~~~~~~~~ This example is from the Basecoin mintnet example: .. code:: json { "genesis_time": "2016-02-05T06:02:31.526Z", "chain_id": "chain-tTH4mi", "validators": [ { "pub_key": [ 1, "9BC5112CB9614D91CE423FA8744885126CD9D08D9FC9D1F42E552D662BAA411E" ], "amount": 1, "name": "mach1" }, { "pub_key": [ 1, "F46A5543D51F31660D9F59653B4F96061A740FF7433E0DC1ECBC30BE8494DE06" ], "amount": 1, "name": "mach2" }, { "pub_key": [ 1, "0E7B423C1635FD07C0FC3603B736D5D27953C1C6CA865BB9392CD79DE1A682BB" ], "amount": 1, "name": "mach3" }, { "pub_key": [ 1, "4F49237B9A32EB50682EDD83C48CE9CDB1D02A7CFDADCFF6EC8C1FAADB358879" ], "amount": 1, "name": "mach4" } ], "app_hash": "15005165891224E721CB664D15CB972240F5703F" }