Pars Protocol

Resolution Process

The formal mechanism for proposing changes to Pars Protocol, from draft through voting to execution.

Resolution Process (قطعنامه)

Resolutions (قطعنامه - Qatnameh) are the formal mechanism for proposing changes to Pars Protocol. This document describes the complete lifecycle of a resolution from draft to execution.

Resolution Lifecycle

Every resolution follows this path:

Draft ──► Submitted ──► Active ──► Queued ──► Executed
  │           │           │           │
  └─► Cancelled  └─► Defeated  └─► Vetoed  └─► Expired

Phase Overview

PhaseDurationDescription
DraftIndefiniteResolution prepared off-chain
Submitted3 daysReview period before voting
Active7 daysVoting period
Queued48 hoursTimelock before execution
Executed-Resolution actions applied

1. Draft Phase

Preparation

Before submission, resolution authors should:

  1. Draft the PIP (Pars Improvement Proposal) document
  2. Discuss on forums at forum.pars.network
  3. Gather community feedback via Town Hall sessions
  4. Prepare on-chain actions with proper encoding

Code Review Requirement

All resolutions must be:

  • Added to the pars-governance repository
  • Tested in fork simulation environment
  • Reviewed by at least 2 independent parties

Resolutions without code review will be vetoed by the Guardian.

Minimum Requirements

RequirementValue
Proposer veASHA0.25% of total supply
Code repositorypars-network/pars-governance
Forum discussionMinimum 7 days
Simulation testRequired

2. Submission Phase

Submitting a Resolution

Call propose() on the Governor contract with:

function propose(
    address[] memory targets,     // Contract addresses to call
    uint256[] memory values,      // ETH values for each call
    bytes[] memory calldatas,     // Encoded function calls
    string memory description     // Resolution description
) public returns (uint256 resolutionId);

Review Period

After submission, a 3-day review period begins (voting delay):

  • Community reviews the resolution actions
  • Technical review of on-chain code
  • Discussion continues on forums
  • Author can still cancel

What to Review

  1. Intent alignment: Does the resolution match stated goals?
  2. Security: Are the on-chain actions safe?
  3. Consensus: Does forum discussion show community support?
  4. Completeness: Are all necessary actions included?

3. Active Phase (Voting)

Activation

Anyone can activate a resolution after the review period by calling activate():

function activate(uint256 resolutionId) public;

Activation must occur within 24 hours of review period ending, or the resolution expires.

Quorum Calculation

At activation, quorum is locked based on current veASHA supply:

// Standard quorum
quorumVotes = (veasha.totalSupply() * quorumPct) / 100_000;

// High-risk quorum (for critical modules)
highRiskQuorumVotes = (veasha.totalSupply() * highRiskQuorum) / 100_000;

Casting Votes

veASHA holders vote during the 7-day voting period:

function castVote(uint256 resolutionId, uint8 support) public;
// support: 0=Against, 1=For, 2=Abstain

function castVoteWithReason(
    uint256 resolutionId,
    uint8 support,
    string calldata reason
) public;

Vote Outcome

Resolution passes if:

  1. Quorum met: FOR votes >= quorumVotes
  2. Approval threshold: FOR votes >= 50% of (FOR + AGAINST)

For large treasury allocations: FOR votes >= 67%

4. Queued Phase (Timelock)

Queueing

Anyone can queue a successful resolution:

function queue(uint256 resolutionId) public;

The proposer's veASHA balance is checked again—if below threshold, queueing fails.

Timelock Duration

Resolution TypeTimelock
Standard48 hours
Large allocation (>$100K)7 days
Critical/High-risk30 days

What Happens During Timelock

  • Community final review of pending actions
  • Guardian can veto if malicious intent discovered
  • Emergency freeze can pause execution
  • Technical preparation for execution

5. Execution Phase

Executing

Anyone can execute after timelock:

function execute(uint256 resolutionId) public;

Requirements:

  • Timelock elapsed
  • Grace period not exceeded (24 hours)
  • Proposer still holds threshold veASHA

Grace Period

Execution must occur within 24 hours after timelock ends, or the resolution expires.

Resolution Failure Modes

Cancelled

  • Author cancels before execution
  • Anyone can cancel if proposer's veASHA drops below threshold

Defeated

  • Quorum not met
  • Approval threshold not reached
  • Resolution automatically marked defeated after voting period

Vetoed

  • Guardian vetoes during timelock
  • Resolution fails permanently
  • Guardian must provide public rationale

Expired

  • Not activated within activation grace period
  • Not executed within execution grace period

Resolution Parameters

ParameterCurrent ValueDescription
proposalThreshold0.25%Min veASHA to submit
quorumPct10%Min participation
highRiskQuorum20%Quorum for critical changes
approvalThresholdPct50%Min FOR percentage
proposalMaxOperations15Max actions per resolution
votingDelay3 daysReview period
votingPeriod7 daysVoting duration
activationGracePeriod24 hoursActivation window
GRACE_PERIOD24 hoursExecution window
delay48 hoursTimelock duration
MIN_VEASHA_SUPPLY1,000 veASHAEmergency threshold

Emergency State

If veASHA supply collapses below MIN_VEASHA_SUPPLY:

  1. Governor enters emergency state
  2. No standard resolutions can proceed
  3. Only Guardian can call emergencyPropose()
  4. Emergency resolutions address the crisis

Resolution Types

Standard Resolution

  • Any governance change
  • Parameter adjustments
  • Treasury allocations <$100K

Extended Review Resolution

  • Treasury allocations $10K-$100K
  • 14-day voting period
  • 7-day timelock

Major Allocation Resolution

  • Treasury allocations >$100K
  • 21-day voting period
  • 67% super-majority required
  • 30-day timelock

Emergency Resolution

  • Only during emergency state
  • Guardian-initiated
  • Expedited timelock (24 hours)

Best Practices

For Authors

  1. Build consensus first via forum discussion
  2. Simulate thoroughly in fork environment
  3. Get code reviewed by independent parties
  4. Write clear descriptions with rationale
  5. Respond to questions during review period

For Voters

  1. Read the full resolution and linked PIPs
  2. Review the simulation results in governance repo
  3. Participate in Town Hall discussions
  4. Vote based on long-term protocol health
  5. Consider delegating if you cannot actively review

On this page