Install
openclaw skills install @blockchain-oracle/zkgovAnonymous governance on HashKey Chain using zero-knowledge proofs. Query proposals, check voter status, register, create proposals, vote anonymously with ZK proofs, and finalize outcomes. Use whenever the user mentions ZKGov, governance proposals, anonymous voting, ZK voting, HashKey Chain governance, or anything related to on-chain voting with privacy.
openclaw skills install @blockchain-oracle/zkgovZKGov is a zero-knowledge governance platform on HashKey Chain testnet (chain ID 133). Voters register with Semaphore identity commitments and cast anonymous, Groth16-verified votes on governance proposals.
# MCP server (preferred — works with Claude Code, Cursor, Windsurf, VS Code)
# https://www.npmjs.com/package/@zkgov/mcp
claude mcp add zkgov npx @zkgov/mcp
# Standalone CLI
# https://www.npmjs.com/package/@zkgov/cli
npm install -g @zkgov/cli
zkgov --help
mcp__zkgov__* are available, call them directly.zkgov <command> via the Bash tool.--json flag. Always use --json when calling CLI from an agent for reliable parsing.| MCP Tool | CLI Command | Description |
|---|---|---|
zkgov-stats | zkgov stats | Platform stats: total proposals, members, group ID |
zkgov-list-proposals | zkgov proposals | List all proposals with vote tallies and status |
zkgov-proposal | zkgov proposal <id> | Full proposal detail by ID |
zkgov-check-voter | zkgov voter <address> | Check if address is a registered voter |
zkgov-members | zkgov members | Semaphore group info: member count, Merkle root |
zkgov-activity | zkgov activity | Recent on-chain events with tx hashes |
| MCP Tool | CLI Command | Description |
|---|---|---|
zkgov-wallet | zkgov wallet | Show agent wallet: address, balance, voter status |
zkgov-register | zkgov register | Register wallet as voter (one-time on-chain tx) |
zkgov-create-proposal | zkgov create <title> | Create a governance proposal |
zkgov-vote | zkgov vote <id> <choice> | Cast anonymous ZK-verified vote |
zkgov-finalize | zkgov finalize <id> | Finalize proposal after voting period ends |
On first write operation, a wallet is auto-generated at ~/.zkgov/config.json (mode 0o600). The same private key derives both the EVM account and the Semaphore ZK identity.
Override with env var: ZKGOV_PRIVATE_KEY=0x...
The wallet needs testnet HSK for gas (very cheap — 0.001 gwei gas price).
zkgov-stats to see proposals/members countzkgov-wallet to see balance and registrationzkgov-register (one-time, ~0.0003 HSK gas)zkgov-list-proposals → zkgov-proposal for detailzkgov-vote with proposalId and choice (generates ZK proof, ~3-5s)zkgov-finalize after voting period ends (anyone can call)--json — machine-readable output on every commandzkgov activity --limit 10 — limit activity eventszkgov create "Title" -d "Body" -p 86400 -q 3 — set period (seconds) and quorum0xEa625841E031758786141c8b13dD1b1137C9776Czkgov-finalize instead