Skip to main content

3. Prepare Genesis

Create and Submit Genesis Transaction and Peer ID

1. Get the latest code

# Go version 1.23.2 is required

git clone --branch v0.8.0 --depth 1 git@repos.gayadeed.it:d-foundation/protocol.git
cd protocol
make build
# or install sudo mv ./dchain /usr/local/bin

# check version to be the below:
dchain version --long

# ...
commit: 4c5f6dcd3d729d8fa92a770fa9dddd03dd3c9c05
cosmos_sdk_version: v0.53.4-dchain-v2
go: go version go1.23.8 linux/amd64
name: dchain
server_name: dchain
version: HEAD-4c5f6dcd3d729d8fa92a770fa9dddd03dd3c9c05

1. Create and Submit Genesis Trasaction

After the pre-genesis file has been prepared, you can now create the genesis transaction.

The pre-genesis.json file can be found in the D-Foundation Networks repo.

Copy the file into your node's home directory

2. Create genesis transaction keys

dchain genesis gentx <key-name> 1000000000000udt \
--chain-id="test-theodoric-2" \
--moniker=<moniker>\
--identity="<keybase-identity>" \
--website:"" \
--commission-max-change-rate="0.01" \
--commission-max-rate="0.1" \
--commission-rate="0.05" \
--min-self-delegation="1000000000000" \
--details="" \
--security-contact="" \
--node-id=$(dchain cometbft show-node-id)

which should result in a file written to Genesis transaction written to "DCHAIN_HOME/config/gentx/gentx-<>.json"

Upload this file to the Networks repo under testnets/test-theodoric-2/gentx.

Please also add peer information to testnets/test-theodoric-2/peers. It should be in the form of $(dchain comet show-node-id)@<ip>:<port>.