For the complete documentation index, see llms.txt. This page is also available as Markdown.

Complete your first governance action

Why start with a generic vote?

A generic vote demonstrates the propose-confirm-execute lifecycle without pausing a service, transferring a token, changing membership, or modifying a threshold. The approved description is recorded through the governance execution result while the action itself has no application-specific side effect.

Before you start

  • A Decentralized Party exists and is visible to all participating nodes.

  • The approved governance rules contract is deployed for that party.

  • Member parties and the approval policy are correct.

  • Each participating operator has the required authentication and Canton rights.

  • The selected release supports generic votes through the intended UI or API.

  • The confirmation timeout is long enough for the planned test.

1. Define the decision

Write a short, unambiguous statement that can be approved or rejected as written. Include no secrets, personal data, mutable contract identifiers, or unsupported promises.

Example development decision:

Approve the documentation workflow test for this development Decentralized Party.

2. Create the proposal

From an authorized member or approved additional proposer, create a generic vote proposal for the intended governance rules and Decentralized Party.

Verify:

  • Governance party.

  • Proposer.

  • Action label.

  • Description.

  • Governance rules contract.

  • Expiry or confirmation window.

The proposer may receive an initial confirmation automatically. Check the supported release behavior before counting confirmations.

3. Inspect the pending action

On each member node, open pending governance actions and match the proposal by its contract identifier, label, description, and proposer. Do not confirm an action based on description alone.

4. Confirm the proposal

Each participating member reviews the full proposal and submits a confirmation through its own authenticated node. Continue only until the governance rules report that the required approval policy is satisfied.

The active governance rules contract determines the required confirmations. Do not rely on a threshold copied from another Decentralized Party.

5. Execute the approved action

Once the action is eligible, an authorized member submits execution using the proposal and the required confirmation contracts.

Execution should consume the applicable pending confirmation state and create the approved governance execution record.

6. Verify the result

Confirm that:

  • The proposal is no longer pending after successful execution.

  • The confirmations used for execution are no longer active.

  • A governance execution result records the action label, description, confirmers, and timestamp or equivalent reviewed fields.

  • No application resource or membership state changed as a side effect.

  • Every member node can observe the expected result under its permissions.

Cancel or expire

Before execution:

  • A member may revoke an eligible confirmation through the supported cancel flow.

  • A stale confirmation may be expired after the contract’s timeout under the supported authorization rules.

  • A proposer may be able to cancel the proposal through the applicable interface.

Treat cancellation of a confirmation, cancellation of a proposal, and expiry as distinct actions.

If governance changes during the vote

Membership, approval policy, or proposer authorization can change while a proposal is in flight. The active rules at execution may alter which confirmations count or whether more confirmations are required. Keep the first test short and avoid concurrent governance changes.

Troubleshooting

Symptom
Check
Safe next action

Proposal is not visible

Governance party, observer visibility, package IDs, and target environment

Confirm the proposal contract before recreating it.

Confirmation is rejected

Member identity, proposer authorization, expiry, and rules contract

Refresh the active governance state.

Action cannot execute

Eligible confirmations under the current member set and policy

Do not substitute unrelated confirmation contracts.

Proposal expires

Confirmation timeout and current ledger time

Expire or clean up under the approved process, then re-propose if needed.

Result is not observable

Party visibility, query interface, and transaction result

Capture sanitized contract and update identifiers.

Technical sources

Next step

👉 Understand the control flow: Decentralization Manager governance lifecycle.

Last updated