How to Anchor a Proposal On-chain
Anchoring locks the proposal on-chain as a PBLK cell. The governance transaction spends this cell with a relative since delay, so CKB consensus enforces the 72-hour review window.
Treasury-funded anchor (keyless)
Section titled “Treasury-funded anchor (keyless)”For registries with a treasury-lock (the canonical testnet registry):
# Build and write the anchor tx to a fileckb-firewall anchor --proposal <id> --tx-out gov_anchor_tx.json
# Or build and submit in one stepckb-firewall anchor --proposal <id> --submitNo private key required. The CLI auto-discovers treasury cells from the registry’s v3 governance header.
Non-treasury anchor
Section titled “Non-treasury anchor”For registries without a treasury:
ckb-firewall anchor \ --proposal <id> \ --to-address <proposal-cell-owner-address> \ --from-account <funding-address> \ --submitWithout --submit, the CLI prints the exact ckb-cli wallet transfer --to-data ... command. Run that command, then record the accepted outpoint:
ckb-firewall anchor \ --proposal <id> \ --proposal-tx <anchor-tx-hash> \ --proposal-index <data-output-index>After anchoring
Section titled “After anchoring”The proposal anchor outpoint is stored on the proposal JSON. Export and share the proposal with validators — see How to share proposals. Validators can now vote.
The review window clock starts when the anchor transaction is mined.