Pars Protocol

vePARS Token

The governance token obtained by locking PARS, aligning voting power with long-term commitment to the protocol.

vePARS Token (Vote-Escrowed PARS)

vePARS is the governance token of Pars Protocol. It is obtained by locking PARS for a specified duration, aligning governance power with long-term commitment to the protocol.

Token Specifications

PropertyValue
NameVote-Escrowed Pars
SymbolvePARS
NetworkPars Network (EVM)
TransferabilityNon-transferable
Decimals18

Why Vote Escrow?

Standard token voting allows short-term actors to influence governance:

ProblemStandard TokenvePARS
Vote buyingEasyExpensive (requires lock)
Short-term manipulationCommonPrevented by commitment
Governance attacksVulnerableTime-locked protection
Voter alignmentWeakStrong (skin in the game)

vePARS ensures that governance power belongs to those committed to the protocol's long-term success.

Lock Mechanics

Creating a Lock

Lock PARS to receive vePARS:

interface IVePARS {
    /// @notice Lock PARS to receive vePARS
    /// @param amount Amount of PARS to lock
    /// @param duration Lock duration in seconds
    function lock(uint256 amount, uint256 duration) external returns (uint256 lockId);
}

Lock Parameters

ParameterValue
Minimum lock30 days
Maximum lock4 years
Lock granularity1 week

Voting Power Calculation

Voting power depends on amount and remaining lock time:

vePARS = PARS_locked × (remaining_time / max_lock_time)
Lock DurationInitial WeightAfter 1 Year
1 month0.021x0x (expired)
6 months0.125x0x (expired)
1 year0.25x0x (expired)
2 years0.50x0.25x
4 years1.00x0.75x

Linear Decay

Voting power decays linearly as the lock approaches expiry:

┌─────────────────────────────────────────────────────────────────┐
│                    VOTING POWER DECAY                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  vePARS                                                         │
│    ▲                                                            │
│ 1000│╲                                                          │
│    │  ╲                                                         │
│ 750│    ╲                                                       │
│    │      ╲                                                     │
│ 500│        ╲                                                   │
│    │          ╲                                                 │
│ 250│            ╲                                               │
│    │              ╲                                             │
│   0│────────────────╲──────────────────────────────────► Time   │
│    │   1yr    2yr    3yr    4yr (expiry)                        │
│                                                                  │
│  Example: 1,000 PARS locked for 4 years                         │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Managing Locks

Extend Lock Duration

Increase remaining lock time (up to 4 years from now):

function extendLock(uint256 lockId, uint256 newDuration) external;

This increases vePARS balance immediately.

Increase Lock Amount

Add more PARS to an existing lock:

function increaseLock(uint256 lockId, uint256 additionalAmount) external;

New PARS inherits the existing lock's expiry.

Withdraw

After lock expires, withdraw PARS:

function withdraw(uint256 lockId) external;

Only available after lock expiry. No early withdrawal.

Governance Rights

Voting

vePARS holders can vote on:

  • Protocol parameter changes
  • Treasury allocations
  • Committee elections
  • Emergency actions

See Voting documentation for details.

Proposal Submission

With sufficient vePARS, submit resolutions:

RequirementCurrent Value
Proposal threshold0.017% of supply

See Resolutions documentation for details.

Delegation

Delegate voting power to another address:

function delegate(address delegatee) external;
  • Entire balance is delegated
  • One delegatee at a time
  • Self-delegation is common

vePARS in Committee Governance

Balanced Power Formula

For Committee voting, power uses a balanced formula:

committee_power = min(PARS, MIGA) × √(lock_duration / max_duration)

This ensures:

  • Requires both ecosystem tokens
  • Prevents whale dominance
  • Rewards commitment with diminishing returns

Committee Elections

vePARS holders elect Committee leads:

  • 6-month terms
  • Staggered rotation
  • Can remove leads via governance vote

Coercion-Resistant Features

Anonymous Voting

For voters in high-threat environments:

  1. ZK Eligibility: Prove vePARS ownership without revealing address
  2. Anonymous Ballot: Vote via zero-knowledge proof
  3. Deniability: Generate fake receipts showing any vote

See Voting documentation for details.

Post-Quantum Signatures

Lock and voting operations support ML-DSA signatures:

function lockPQ(
    uint256 amount,
    uint256 duration,
    bytes memory pqPublicKey,
    bytes memory pqSignature
) external returns (uint256 lockId);

Use Cases

Governance Participation

  • Vote on protocol upgrades
  • Elect Committee leadership
  • Approve treasury allocations

Advance Collateral

Use vePARS position as collateral:

  • Borrow against locked position
  • Yield repays debt over time
  • No price-based liquidation

Protocol Incentives

Some protocol incentives require vePARS:

  • Boosted yields in certain strategies
  • Priority access to new features
  • Committee membership eligibility

Strategies

Long-Term Believer

Lock maximum duration (4 years):

  • Maximum voting power
  • Maximum protocol alignment
  • Re-lock periodically to maintain weight

Active Governance

Lock 1-2 years:

  • Meaningful voting power
  • Flexibility to adjust position
  • Balance between commitment and liquidity

Delegator

Lock minimum duration:

  • Participate via delegation
  • Maintain liquidity
  • Support trusted delegates

Contract Addresses

NetworkContractAddress
Pars NetworkvePARS Token0x... (TBD)

On this page