Verifiers

Verifiers secure publisher quality by checking homepage badge ownership against on-chain records. Good verifier performance improves registry trust and can qualify for rewards.

Network values you'll use

  • Chain ID: content-grid-1
  • RPC: https://congrid.net/rpc
  • gRPC (example): 127.0.0.1:9090
  • Fee denom: ucongrid
  • Suggested gas price: 0.001ucongrid

What verifiers do

  • Pull on-chain verification assignments.
  • Fetch publisher homepages and inspect Congrid badge link.
  • Submit accurate results in time windows.
  • Maintain high availability and consistent response latency.

Step 1 — Prepare wallet + stake

Use a dedicated verifier account. Keep enough balance for bonding and tx fees.

# Bond (example amount)
./content-grid-d verifier bond 1000000 \
  --denom ucongrid \
  --from <local-key-name> \
  --chain-id content-grid-1 \
  --node https://congrid.net/rpc \
  --gas-prices 0.001ucongrid \
  -y

# Optional unbond later
./content-grid-d verifier unbond 1000000 \
  --denom ucongrid \
  --from <local-key-name> \
  --chain-id content-grid-1 \
  --node https://congrid.net/rpc \
  --gas-prices 0.001ucongrid \
  -y

Step 2 — Run verifier daemon

Use offchain/verifierd from this repository for chain-driven assignments. Run it continuously and monitor logs so you can submit checks inside each assignment window.

# Example status checks
./content-grid-d verifier assignments <verifier-address> \
  --node https://congrid.net/rpc \
  --grpc-addr 127.0.0.1:9090 \
  --grpc-insecure -o json

./content-grid-d query registry publisher --domain <domain> \
  --node https://congrid.net/rpc \
  --grpc-addr 127.0.0.1:9090 \
  --grpc-insecure -o json

One-click script (Linux/macOS, no Docker)

Use the repository script to build binaries, prepare the verifier key, render verifierd config, and start the verifier daemon on a Linux or macOS host. This path does not require Docker.

# Store verifier key material outside git history.
cp /path/to/verifier.mnemonic ~/.congrid-verifier.mnemonic
printf '%s\n' '<keyring-passphrase>' > ~/.congrid-verifier.pass
chmod 600 ~/.congrid-verifier.mnemonic ~/.congrid-verifier.pass

# Create the local script env file.
cat > .env.verifier <<'EOF'
CONGRID_CHAIN_ID=content-grid-1
CONGRID_NODE_RPC_URL=https://congrid.net/rpc
CONGRID_NODE_GRPC_ADDR=127.0.0.1:9090
CONGRID_HOME=$HOME/.content-grid-d

CONGRID_VERIFIER_KEY_NAME=verifier-key
CONGRID_VERIFIER_KEYRING_BACKEND=file
CONGRID_VERIFIER_KEY_MNEMONIC_FILE=$HOME/.congrid-verifier.mnemonic
CONGRID_VERIFIER_KEYRING_PASSPHRASE_FILE=$HOME/.congrid-verifier.pass

CONGRID_VERIFIER_FEES=5000ucongrid
EOF

# Build, configure, and start verifierd in the background.
./scripts/verifier-oneclick.sh --env .env.verifier start

# Confirm process state and follow logs.
./scripts/verifier-oneclick.sh --env .env.verifier status
./scripts/verifier-oneclick.sh --env .env.verifier logs

The script writes offchain/verifierd/config.json, builds bin/content-grid-d and bin/verifierd, starts verifierd in the background, and stores logs under logs/verifierd.out. The important long-running defaults are CONGRID_VERIFIER_COMMIT_START_BUFFER_SECONDS=15, CONGRID_VERIFIER_TX_INCLUSION_TIMEOUT_SECONDS=120, and CONGRID_VERIFIER_STATE_DIR=$CONGRID_HOME/verifierd-state, which persists pending commit/reveal nonces across restarts.

# Print the verifier address resolved by the script
./scripts/verifier-oneclick.sh --env .env.verifier address

# Optional: submit verifier bond through the same configured key
CONGRID_VERIFIER_BOND_AMOUNT=1000000 \
./scripts/verifier-oneclick.sh --env .env.verifier bond

# Confirm assignments and successful submissions from the host
./content-grid-d verifier assignments <verifier-address> \
  --node https://congrid.net/rpc \
  --grpc-addr 127.0.0.1:9090 \
  --grpc-insecure \
  --include-finalized -o json

# Stop or restart the background daemon
./scripts/verifier-oneclick.sh --env .env.verifier stop
./scripts/verifier-oneclick.sh --env .env.verifier restart

Step 3 — Keep your verifier reliable

  • Use stable DNS/network; avoid frequent IP rotations.
  • Track failed checks and homepage fetch latency.
  • Alert on process exit, RPC disconnect, and backlog growth.
  • Keep software updated with protocol changes.
Verifier tip: Reliability matters because missed or inaccurate checks reduce your reward potential.