How to Vote on a Proposal
ckb-firewall vote --proposal <id> --vote yesThe CLI prompts for your secp256k1 private key with masked input. It:
- Derives the compressed public key from the key
- Verifies the pubkey is in the authorized validator set (Merkle proof against the on-chain
validatorMerkleRoot) - Rejects the key if it is not authorized
- Signs:
blake2b({ domain: "ckb-firewall:vote", proposalIdHash, vote, timestamp, pubkey }) - Stores the vote locally with signature and Merkle proof
- Updates the
voteDigestHash
Vote options: yes, no, abstain. Only yes votes count toward the threshold for execution. See the CLI reference — vote for all options.
For scripted use (fully controlled environments only):
ckb-firewall vote --proposal <id> --vote yes --private-key <hex>After voting, export the updated proposal and share it with other participants:
ckb-firewall export --proposal <id> --out proposal-voted.json