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.