Governance

1. Governance Overview

Parallel protocol is designed to be a fully decentralized financial platform that can serve millions of users. On Parallel, there are 4 kinds of stakeholders:

  • Development team and open contributors

  • Investors with Parallel's native token

  • A wealth of platform users

  • Network maintainers

The governance process should incentivize each party to participate in the network activity and evolve the protocol to meet the broad users' requirements.

2. Governance Implement

Parallel governance has been implemented through substrate pallets, and thus inherited Polkadot's custom governance which is composed of the following parts:

  • Democracy

  • Council

  • Technical Committee

  • Treasury

Any HKO/PARA token holders can propose and vote on essentially any possible modification to the system, more specifically:

  • Runtime Upgrade

  • Protocol Parameters

  • Treasury Spending

  • Council Member Nomination

Democracy/Council/Technical Committee play very different roles in this governance system. Democracy can be imaged as the Sudo of the blockchain.

If one proposal got enough votes, then the modification will be applied to the blockchain

unless Council/Technical Committee finds harmful

In other words, council and technical committee serves for democracy. Technical Committee can also fast-track a proposal which makes it easier & quicker to pass. Token holders can nominate council/technical committee members to represent their rights.

Except the basis of governance, when token holders decide to submit changes to the protocol, they will also need to pay attention to the hard timeframe limitation:

  • LaunchPeriod (1 Day)

  • VotingPeriod (5 Days)

  • FastTrackVotingPeriod (3 Hours)

  • EnactmentPeriod (1 Day)

The minimum time needed for a proposal to pass is around 3hours, token holders will need to ask council to propose an external proposal. Afterwards, the technical committee will need to fast-track to make sure it enters referenda.

3. Governance Calls

Loans Pallet

add_market

Stores a new market and its related currency. Ref: https://api-docs.parallel.fi/rustdocs/pallet_loans/pallet/enum.Call.html#variant.add_market

activate_market

Activates a market.

Ref: https://api-docs.parallel.fi/rustdocs/pallet_loans/pallet/enum.Call.html#variant.activate_market

update_rate_model

Updates the rate model of a stored market.

Ref: https://api-docs.parallel.fi/rustdocs/pallet_loans/pallet/enum.Call.html#variant.update_rate_model

update_market

Updates a stored market.

Ref: https://api-docs.parallel.fi/rustdocs/pallet_loans/pallet/enum.Call.html#variant.update_market

Liquid-Staking Pallet

update_reserve_factor

Update platform's protocol fees ratio Ref: https://api-docs.parallel.fi/rustdocs/pallet_liquid_staking/pallet/enum.Call.html#variant.update_reserve_factor

update_staking_ledger_cap

Update single nominator's max bonded cap Ref: https://api-docs.parallel.fi/rustdocs/pallet_liquid_staking/pallet/enum.Call.html#variant.update_staking_ledger_cap

AMM & StableSwap Pallet

create_pool

Create of a new pool. Ref:

Crowdloans Pallet

create_vault

Create a new crowdloan vault. Ref: https://api-docs.parallel.fi/rustdocs/pallet_amm/pallet/enum.Call.html#variant.create_pool

update_vault

Update an existing crowdloan vault. Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.update_vault

open

Open a crowdloan vault so that users contributions can be sent to relaychain via XCM protocol. Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.open

close

Close a crowdloan vault so that users' contributions can be paused. Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.close

auction_succeeded

Mark the associated vault as Succeed if vault is Closed Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.auction_succeeded

auction_failed

Mark the associated vault as Failed if vault is Closed Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.auction_failed

slot_expired

Mark a crowdloans vault as expired so that users can redeem back their contributed tokens. Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.slot_expired

migrate_pending

Migrate pending contributions by sending xcm. Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.migrate_pending

refund

Refund users contributions for failed auctions. Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.refund

dissolve_vault

Dissolve a crowdloan vault which has been dissolved on relaychain. Ref: https://api-docs.parallel.fi/rustdocs/pallet_crowdloans/pallet/enum.Call.html#variant.dissolve_vault

Last updated