logo

Cheqd

CHEQ
  • Network:

    Mainnet

  • Chain ID:

    cheqd-mainnet-1

  • Current Node Version:

    HEAD-6a98e5ebb45500efd147752babb09c7f6aed0e09

Overview

Cheqd is a blockchain network in the Cosmos ecosystem focused on improving privacy, trust, and decentralization in digital interactions. It aims to enable secure, direct communication without centralized control, support new business models for decentralized identity using its $CHEQ token, and bridge decentralized identity with DeFi for better user experiences and compliance.

Cheqd’s key innovation lies in decentralized identity technologies like Decentralized Identifiers (DIDs) and Verifiable Credentials (VCs), allowing users to securely manage their digital identities without needing multiple accounts and passwords. By introducing Self-Sovereign Identity (SSI), Cheqd puts control back in users' hands, offering more secure, seamless digital interactions while protecting privacy.

A central feature of this approach is “Creds”—portable, private, verifiable credentials that can be securely shared across platforms. Unlike public NFTs, these credentials remain private and revocable, making them ideal for various use cases.

Overall, Cheqd provides a forward-looking solution for digital identity management, emphasizing user control, security, and trust in an increasingly digital world.

Public Endpoints

TypeEndpointLink
RPChttps://cheqd-mainnet-rpc.crouton.digital arrow right icon
APIhttps://cheqd-mainnet-api.crouton.digital arrow right icon
gRPCcheqd-mainnet-grpc.crouton.digital:16190
peer332a51f1dc72b5a2ed9003425f225b430924ddfc@148.251.53.24:16156

Guide

INFOINFO

This guide provides a complete and reliable setup for running a Cheqd mainnet node and validator. Here you’ll find everything you need - from downloading binaries and configuration files to initializing the node, managing keys, applying snapshots, and maintaining a stable validator environment. Follow the steps carefully to ensure a smooth and secure deployment on the Cheqd network.

Prepare

Update and install packages

sudo apt update && sudo apt upgrade -y && \ sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc fail2ban htop -y

Installing Go

VER="1.22.0" cd $HOME && \ wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz" && \ sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz" && \ rm "go$VER.linux-amd64.tar.gz" && \ echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version

Binary

git clone https://github.com/cheqd/cheqd-node cheqd cd cheqd git checkout HEAD-6a98e5ebb45500efd147752babb09c7f6aed0e09 make install cheqd-noded version --long | grep -e version -e commit # version: HEAD-6a98e5ebb45500efd147752babb09c7f6aed0e09 # commit: 6a98e5ebb45500efd147752babb09c7f6aed0e09

Initialization

Initialize the node (replace VALIDATOR_NAME with your own)

cheqd-noded init VALIDATOR_NAME --chain-id cheqd-mainnet-1 && \ cheqd-noded config chain-id cheqd-mainnet-1 && \ cheqd-noded config keyring-backend os

Genesis

Download genesis

wget https://storage.crouton.digital/mainnet/cheqd/files/genesis.json -O $HOME/.cheqdnode/config/genesis.json

Addrbook

Download addrbook

wget https://storage.crouton.digital/mainnet/cheqd/files/addrbook.json -O $HOME/.cheqdnode/config/addrbook.json

Configuration

EXTERNAL_IP=$(wget -qO- eth0.me) NODE_NUMBER="1" sed -i.bak \ -e "s/\(proxy_app = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))58\"/" \ -e "s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))57\"/" \ -e "s/\(pprof_laddr = \"\)\([^:]*\):\([0-9]*\).*/\1localhost:$(($NODE_NUMBER + 60))60\"/" \ -e "/\[p2p\]/,/^\[/{s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))56\"/}" \ -e "/\[p2p\]/,/^\[/{s/\(external_address = \"\)\([^:]*\):\([0-9]*\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/; t; s/\(external_address = \"\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/}" \ -e "s/\(prometheus_listen_addr = \":\)\([0-9]*\).*/\1$(($NODE_NUMBER + 266))60\"/" $HOME/.cheqdnode/config/config.toml sed -i.bak \ -e "/\[api\]/,/^\[/{s/\(address = \"tcp:\/\/\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 13))17\4/}" \ -e "/\[grpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))90\4/}" \ -e "/\[grpc-web\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))91\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))45\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(ws-address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))46\4/}" $HOME/.cheqdnode/config/app.toml echo "export NODE=http://localhost:$(($NODE_NUMBER + 266))57" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ cheqd-noded config node $NODE

Create a service file

sudo tee /etc/systemd/system/cheqd-noded.service > /dev/null <<EOF [Unit] Description=cheqd_node After=network.target [Service] User=$USER Type=simple ExecStart=$(which cheqd-noded) start --home $HOME/.cheqdnode Restart=on-failure LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF

Start the node

sudo systemctl daemon-reload && \ sudo systemctl enable cheqd-noded && \ sudo systemctl restart cheqd-noded && \ sudo journalctl -u cheqd-noded -f -o cat

Snapshot

Block HeightSizeIndexerLast SnapshotDownload
2205854938Gnull2025-12-12T13:15:37.1804499Z arrow right icon

Restore node from snapshot

sudo apt install lz4 -y && \ sudo systemctl stop cheqd-noded && \ cp $HOME/.cheqdnode/data/priv_validator_state.json $HOME/.cheqdnode/priv_validator_state.json.backup && \ rm -rf $HOME/.cheqdnode/data && \ curl https://storage.crouton.digital/mainnet/cheqd/snapshots/cheqd_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.cheqdnode && \ mv $HOME/.cheqdnode/priv_validator_state.json.backup $HOME/.cheqdnode/data/priv_validator_state.json && \ sudo systemctl restart cheqd-noded && \ sudo journalctl -u cheqd-noded -f

State Sync

Restore node from state sync

SNAP_RPC="https://cheqd-mainnet-rpc.crouton.digital:443" && \ sudo systemctl stop cheqd-noded && \ cp $HOME/.cheqdnode/data/priv_validator_state.json $HOME/.cheqdnode/priv_validator_state.json.backup && \ cheqd-noded tendermint unsafe-reset-all --home $HOME/.cheqdnode --keep-addr-book && \ peers="332a51f1dc72b5a2ed9003425f225b430924ddfc@148.251.53.24:16156" && \ sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.cheqdnode/config/config.toml && \ LATEST_HEIGHT=$(curl -s "$SNAP_RPC/block" | jq -r .result.block.header.height) && \ BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)) && \ TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash) && \ echo "$LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH" && sleep 2 && \ sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"| ; s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.cheqdnode/config/config.toml && \ mv $HOME/.cheqdnode/priv_validator_state.json.backup $HOME/.cheqdnode/data/priv_validator_state.json && \ sudo systemctl restart cheqd-noded && \ sudo journalctl -u cheqd-noded -f

Upgrade Node

VER="vHEAD-6a98e5ebb45500efd147752babb09c7f6aed0e09" git clone https://github.com/cheqd/cheqd-node cheqd && \ cd $HOME && \ rm -rf cheqd && \ git clone https://github.com/cheqd/cheqd-node cheqd && \ cd cheqd && \ git checkout tags/$VER -b $VER && \ make install && \ sudo systemctl restart cheqd-noded && \ sudo journalctl -u cheqd-noded -f

Delete Node

sudo systemctl stop cheqd-noded && \ sudo systemctl disable cheqd-noded && \ sudo rm -rf /etc/systemd/system/cheqd-noded.service && \ sudo rm "$(which cheqd-noded)" && \ sudo rm -rf "$HOME/.cheqdnode"

Key management

# This command generates a new wallet with a unique keypair. # Use this to create a secure, brand-new wallet for transactions. # Your wallet name = "wallet" cheqd-noded keys add wallet

Validator management

cheqd-noded tx staking create-validator \ --amount 1000000ncheq \ --moniker "VALIDATOR_NAME" \ --identity "" \ --website "" \ --details "" \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1 \ --pubkey $(celestia-appd tendermint show-validator) \ --chain-id cheqd-mainnet-1 \ --gas auto \ --gas-adjustment 1.4 \ --gas-prices 0.002ncheq \ -y

Validator commands

# Retrieves comprehensive information regarding the validator. # This command is utilized to fetch details about the current validator, including its address, public key, and associated data. # Your wallet name = "wallet" cheqd-noded q staking validator $(cheqd-noded keys show wallet --bech val -a)

Onchain

# Withdraw all accumulated rewards from your account. # This command retrieves and withdraws all rewards earned from staking. # Your wallet name = "wallet" cheqd-noded tx distribution withdraw-all-rewards --from wallet --chain-id cheqd-mainnet-1 --gas-adjustment=1.15 --gas auto --gas-prices 0.002ncheq -y

Chat With Us

Connect directly with our team by filling out the contact form. Whether you’re looking to optimize staking yields, deploy validator nodes, integrate RPC services, or find a reliable validator partner for your blockchain or project — we’re here to help.

We can explore Web3 and blockchain infrastructure solutions together and tailor our support to your long-term goals. Schedule a meeting, and let’s discuss your long-term goals.

Crouton Digital respects your privacy. By submitting this form, you are acknowledging that you have read and agree to our Privacy Policy, which details how we collect and use your information.