Skip to content

Voting on Proposals

This guide covers how to participate in governance by voting on proposals. You'll learn to find active proposals, understand what they do, cast your vote, and execute successful proposals.

Prerequisites

Before voting, ensure you have:

  1. Delegated voting power - tokens have 0 voting power until delegated
  2. Vote gate satisfied - your effective votes at the proposal snapshot are ≥ minVotesToVote (default: 1 SXXX)

Check your status:

sage governance preflight --subdao 0xYourDAO

1. Find Active Proposals

View Proposal Inbox

sage proposals inbox --dao 0xYourDAO

This shows: - Proposal IDs - Current state (Pending, Active, Succeeded, Queued, Executed) - Voting deadlines - Current vote counts

sage proposals status --dao 0xYourDAO

This tells you what to do next: - "Vote on proposal #X" - Proposal is active, needs votes - "Queue proposal #X" - Succeeded, ready for queue - "Execute proposal #X" - Queued and delay passed


2. Understand What a Proposal Does

Before voting, understand the proposal's effects.

Quick Preview

sage proposals preview <proposal-id> --dao 0xYourDAO

Shows: - Proposal description - Target contracts and functions - Current voting status - Time remaining - Quorum progress

Detailed Decode

For deeper analysis:

sage governance decode <proposal-id> --subdao 0xYourDAO

This decodes the calldata to show exactly what will happen if the proposal passes (e.g., library updates, parameter changes).

Proposal Summary

sage governance summary <proposal-id> --subdao 0xYourDAO

Shows before/after effects of the proposal.


3. Cast Your Vote

sage proposals vote <proposal-id> <support> --dao 0xYourDAO

Support options: - for - Vote in favor - against - Vote against - abstain - Abstain (counts toward quorum but not outcome)

Examples:

# Vote for proposal 42
sage proposals vote 42 for --dao 0xYourDAO

# Vote against
sage proposals vote 42 against --dao 0xYourDAO

# Abstain
sage proposals vote 42 abstain --dao 0xYourDAO

Vote with Reason

Provide on-chain reasoning for your vote:

sage governance vote <proposal-id> for \
  --reason "This improves error handling in the SQL prompt" \
  --dao 0xYourDAO

Non-Interactive Voting

For automation:

sage proposals vote 42 for --dao 0xYourDAO -y

4. After Voting Ends

Queue Successful Proposals

Proposals that pass must be queued for the timelock delay:

sage governance queue <proposal-id> --subdao 0xYourDAO

Execute After Delay

Once the timelock delay passes:

sage proposals execute <proposal-id> --dao 0xYourDAO

Or through governance command:

sage governance execute <proposal-id> --subdao 0xYourDAO

Wait for Execution

Watch a proposal through its lifecycle:

sage governance watch <proposal-id> --subdao 0xYourDAO

This polls until the proposal reaches Executed state, automatically queueing and executing when possible.


Proposal Lifecycle

1. CREATED
   └─▶ Proposal submitted to Governor

2. PENDING  (optional delay)
   └─▶ Voting hasn't started yet

3. ACTIVE
   └─▶ Voting period open → VOTE HERE

4. SUCCEEDED
   └─▶ Quorum reached, majority voted for → Queue it

5. QUEUED
   └─▶ Waiting for Timelock delay → Wait

6. EXECUTED
   └─▶ Proposal actions completed → Done!

Check Proposal State

sage governance state <proposal-id> --subdao 0xYourDAO

Understanding Voting Power

Your vote is weighted by your effective votes at the proposal’s snapshot (delegated SXXX votes, optionally multiplied by DAO‑scoped NFT multipliers).

Check Your Voting Power

sage governance voting-power 0xYourAddress --subdao 0xYourDAO

With Multipliers

If the DAO uses NFT multipliers:

sage multiplier calculate --dao 0xYourDAO

Governance Information

View Quorum

sage governance quorum --subdao 0xYourDAO

View Threshold

sage governance threshold --subdao 0xYourDAO

Full Proposal Details

sage governance get <proposal-id> --subdao 0xYourDAO

Quick Reference

# Discovery
sage proposals inbox --dao 0xDAO
sage proposals status --dao 0xDAO
sage proposals preview <id> --dao 0xDAO

# Voting
sage proposals vote <id> for --dao 0xDAO
sage proposals vote <id> against --dao 0xDAO
sage proposals vote <id> abstain --dao 0xDAO

# Execution
sage governance queue <id> --subdao 0xDAO
sage proposals execute <id> --dao 0xDAO

# Analysis
sage governance decode <id> --subdao 0xDAO
sage governance summary <id> --subdao 0xDAO
sage governance state <id> --subdao 0xDAO