Claude-skill-registry hegemon-testnet-join

Join the Hegemon testnet using the shared chainspec, verify genesis, sync to the tip, and enable mining safely.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/hegemon-testnet-join" ~/.claude/skills/majiayu000-claude-skill-registry-hegemon-testnet-join && rm -rf "$T"
manifest: skills/data/hegemon-testnet-join/SKILL.md
source content

Goal

Connect a new node to the Hegemon testnet, verify it is on the canonical chain, and mine only after sync completes.

Defaults

  • Boot node: hegemon.pauli.group:30333
  • Chain spec: config/dev-chainspec.json
  • Genesis hash: 0xcaa718106d1530705c53a99628d929cd78d47a0bf06b177aa4853962b47c637d
  • RPC port: 9944
  • P2P listen: /ip4/0.0.0.0/tcp/30333

Steps

  1. Ensure binaries exist (fresh clones must run make setup and make node):
    • make setup
    • make node
    • cargo build --release -p walletd
  2. Verify the shared chainspec matches the boot node. Do not use --chain dev.
    • shasum -a 256 config/dev-chainspec.json
  3. Create or open a wallet and export the shielded mining address:
    • export HEGEMON_MINER_ADDRESS=$(printf '%s\n{"id":1,"method":"status.get","params":{}}\n' "YOUR_PASSPHRASE"
      | ./target/release/walletd --store ~/.hegemon-wallet --mode open
      | jq -r '.result.primaryAddress')
  4. Start the node with the shared chainspec and seed:
    • HEGEMON_MINE=1
      HEGEMON_SEEDS="hegemon.pauli.group:30333"
      HEGEMON_MINER_ADDRESS="$HEGEMON_MINER_ADDRESS"
      ./target/release/hegemon-node
      --dev
      --base-path ~/.hegemon-node
      --chain config/dev-chainspec.json
      --listen-addr /ip4/0.0.0.0/tcp/30333
      --rpc-port 9944
      --rpc-external
      --rpc-methods safe
      --name "TestnetNode"
  5. Monitor sync status and height. Mining pauses while syncing and resumes once caught up.
    • curl -s -H "Content-Type: application/json"
      -d '{"id":1,"jsonrpc":"2.0","method":"system_health"}'
      http://127.0.0.1:9944 | jq
    • curl -s -H "Content-Type: application/json"
      -d '{"id":1,"jsonrpc":"2.0","method":"hegemon_consensusStatus"}'
      http://127.0.0.1:9944 | jq
    • curl -s -H "Content-Type: application/json"
      -d '{"id":1,"jsonrpc":"2.0","method":"chain_getHeader"}'
      http://127.0.0.1:9944 | jq
  6. If height stalls, check peers and genesis hash:
    • curl -s -H "Content-Type: application/json"
      -d '{"id":1,"jsonrpc":"2.0","method":"chain_getBlockHash","params":[0]}'
      http://127.0.0.1:9944 | jq

Notes

  • If the genesis hash or chainspec differ, stop the node and wipe the base path before restarting.
  • Keep RPC access locked down if you expose it beyond localhost.