Skip to content

Step 4: Run a Governance Round

We will add a test address to your new registry, going through the complete governance lifecycle.

Terminal window
ckb-firewall propose \
--action add \
--lock-args 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef \
--evidence "https://example.com/test-evidence" \
--classification other \
--severity low \
--rationale "Tutorial test entry — for governance round verification only." \
--proposer operator-tutorial \
--registry-tx <bootstrap tx hash> \
--registry-index 0

Note the proposal ID printed by the CLI (e.g. tutorial-xyz).

Terminal window
ckb-firewall anchor \
--proposal tutorial-xyz \
--registry-tx <bootstrap tx hash> \
--registry-index 0

This builds and submits a treasury-funded PBLK proposal cell. No private key required. The review window clock starts when this transaction is mined.

Have at least three of your five validators run:

Terminal window
ckb-firewall vote --proposal tutorial-xyz --vote yes

Each validator signs with their private key, then exports the updated proposal and shares it with the next validator:

Terminal window
ckb-firewall export --proposal tutorial-xyz --out proposal-voted.json
# share proposal-voted.json with next validator
ckb-firewall import proposal-voted.json

After the review window has elapsed and threshold yes-votes are collected:

Terminal window
ckb-firewall execute \
--proposal tutorial-xyz \
--registry-tx <bootstrap tx hash> \
--registry-index 0

Verify the entry is now in the registry:

Terminal window
ckb-firewall inspect \
--registry-tx <new registry tx from execute output> \
--registry-index 0
ckb-firewall check \
--lock-args 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef \
--registry-tx <new registry tx>

Expected: the entry is listed as active and check confirms it is blacklisted.

Continue to Step 5.