LogoLogo
  • Introduction
  • Parallel Protocol
    • PRL (Parallel Governance Token)
      • Issuance
      • Bridging Module
        • Specifications
        • Implementation
      • Tokenomics
        • Epoch Concept
        • Staking Mechanisms
        • ParaBoost
        • Fee Distribution
      • Governance
      • MIMO to PRL Migration
    • PAR (€ stablecoin)
      • How does PAR work?
      • Where can I get PAR ?
    • paUSD ($ stablecoin)
      • How does paUSD work?
      • Where can I get paUSD ?
    • Classic Vaults
      • Depositing
      • Borrowing
      • Fees
        • Fees Generation
      • Withdrawing
      • Repaying
      • Liquidating
    • Bridging Module
      • LayerZero Infrastructure
      • Specifications
      • Implementation
        • PAR
        • paUSD
    • Super Vaults (SV)
      • Leveraging
      • Rebalancing
      • EmptyVault
      • Automated Rebalance
      • Managed Rebalance
    • Inception Vaults (IV)
      • Borrowing
      • Liquidating
  • DAO & Governance
    • sPRL and Voting Power
    • Governance process
    • Proposal Framework
      • Parallel Integration Request (PIR)
      • Parallel Governance Proposal (PGP)
      • Parallel Improvement Protocol (PIP)
    • DAO Multisigs
      • DAO Multisigs Elections
        • Election 1
        • Election 2
        • Election 3
        • Election 4
        • Election 5
        • Election 6
      • Multisigs Transactions History
        • May 2022 Multisig History
        • June 2022 Multisig History
        • July 2022 Multisig History
        • August 2022 Multisig History
        • September 2022 Multisig History
        • October 2022 Multisig History
        • November 2022 Multisig History
        • December 2022 Multisig History
        • January 2023 Multisig History
        • February 2023 Multisig History
        • March 2023 Multisig History
        • April 2023 Multisig History
        • May 2023 Multisig History
        • June 2023 Multisig History
        • July 2023 Multisig History
        • August 2023 Multisig History
        • September 2023 Multisig History
        • October 2023 Multisig History
        • November 2023 Multisig History
        • December 2023 Multisig History
        • January 2024 Multisig History
        • February 2024 Multisig History
        • March 2024 Multisig History
        • April 2024 Multisig History
        • May 2024 Multisig History
    • Parallel Emergency Guardians
    • DAO Treasury
      • DAO Treasury Reports
  • Risk Assessments
    • Parallel's Risk framework
    • Methodology
    • Risk per Assets
      • PAR
        • Ethereum Assets
        • Polygon Assets
        • Fantom Assets
      • paUSD
        • Ethereum Assets
        • Polygon Assets
    • Risk parameters
      • PAR
        • Ethereum Risk parameters
        • Polygon Risk parameters
        • Fantom Risk parameters
      • paUSD
        • Ethereum Risk parameters
        • Polygon Risk parameters
    • Insurance Fund
  • Developers
    • Developer Guide
    • Parallel Governance Token (PRL)
    • Tokenomics
      • Key Operations Flows
      • Contracts
    • Classic Vaults
      • Architecture
      • VaultsCore
      • Opening a vault
      • Borrowing and minting PAR/paUSD
    • Bridging Module
      • Architecture
      • Sample Use Cases
    • Super Vault (SV)
      • Proxy Design
        • MIMOProxy
        • MIMOProxyGuard
        • MIMOProxyFactory
      • Action Contracts
        • MIMOEmptyVault
        • MIMOLeverage
        • MIMORebalance
        • MIMOAutoRebalance
        • MIMOManagedRebalance
        • MIMOProxyActions
        • MIMOVaultActions
      • Leverage Max Amount Derivation
    • Inception Vault (IV)
      • IV Architecture
      • InceptionVaultFactory
      • AdminInceptionVault
      • InceptionVaultCore
      • InceptionVaultsDataProvider
      • InceptionVaultPriceFeed
    • Contract Addresses
      • Parallel V3
        • Core Protocol
        • Parallel Governance Token
      • Parallel V2
        • PAR
          • Ethereum
          • Polygon PoS
          • Fantom
        • paUSD
          • Ethereum
          • Polygon PoS
      • Super Vaults (SV)
        • PAR
          • Ethereum
          • Polygon PoS
        • paUSD
          • Ethereum
          • Polygon PoS
      • Inception Vaults (IV)
        • Kovan
  • Resources
    • User Guides
      • Setting up
      • Managing Transactions on EVM blockchains
      • Troubleshooting
      • Mint PAR
      • Liquidity Providing
        • Provide PAR-USDC liquidity on Uniswap V3 (Ethereum)
        • Provide PAR-jEUR liquidity on Balancer (Polygon PoS)
        • Impermanent loss
      • How to Migrate to PRL?
      • How to Bridge Parallel Tokens?
      • How to Stake PRL?
    • Security & Audits
    • Links
    • Glossary
    • Brand Kit
Powered by GitBook
On this page
  • Overview
  • Key features
  • High level Design
  • Contracts
  • PRL Token
  • PrincipalMigrationContract
  • LockBox
  • PeripheralMigrationContract
  • PeripheralPRL
  • Technical Details
  • LayerZero standards
  • Migrate from MIMO to PRL
  • Pause
  • Unpause
  • EmergencyRescue
  • Deployment
  • Documentation for Audits

Was this helpful?

  1. Developers

Parallel Governance Token (PRL)

PreviousDeveloper GuideNextTokenomics

Last updated 8 days ago

Was this helpful?

Overview

This document details features related to the new token and the migration from Mimo token to PRL.

3 types of contracts:

  • The token contract that inherit of Openzeppelin ERC20 and ERC20Permit standards.

  • The Migrations contracts handled by the and contracts that leveraging on for migrating Mimo from anychain to PRL on anychain.

  • The Bridging of PRL, handled by the and contracts that leveraging on fork of for allow PRL to be omnichain.

Key features

The architecture allows:

  • Omnichain migration from MIMO to PRL

  • Omnichain PRL

High level Design

High Level Architecture

Contracts

PRL Token

PrincipalMigrationContract

LockBox

PeripheralMigrationContract

PeripheralPRL

Technical Details

LayerZero standards

The omnichain part is handled by LayerZero that allows cross chain messages. We are using two standard :

Each Omnichain contract inherits a specific type of the LayerZero standard :

  • Migration contracts :

  • Omnichain PRL:

Migrate from MIMO to PRL

Thanks to the architecture, users will be able to migrate from Mimo to PRL without friction on the chain to send/receive. Below you will find the possible scenarios:

  • Migrate on Main

In this case we just transfer Mimo to the contract from the user and send him PRL.

  • Migrate from Main to chain A

In this case we swap Mimo to PRL on the main chain and send the PRL to the LockBox (OFT) that will lock the PRL and send a message to the PeripheralPRL contract on the destination chain.

  • Migrate from chain A to Main

In this case we are using the PrincipalMigrationContract to transfer user's Mimo to itself and send a migration message to the main chain. Then the PrincipalMigrationContract will receive the message and send PRL to the user.

  • Migrate from chain A to chain X

In this case we are using the full architecture to send message from A to X link in the previous case. Then the PrincipalMigrationContract will create a new message that will be send to the LockBox. The LockBox will transfer PRL from the PrincipalMigrationContract to itself and send the message to the final chain that will mint PRL to the user.

Pause

A pause function exists to prevent new send() and migrateToPRL() calls from being executed. This is useful in the event of a bug or security vulnerability.

Only the Owner can call pause

Unpause

An unpause function exists to unpause the contract.

Only the Owner can call unpause.

EmergencyRescue

A emergencyRescue() function exists on migration contract to withdraw any tokens owned by the contract.

Only the Owner can call emergencyRescue and the contract must be in pause.

Deployment

Documentation for Audits

The contract is an immutable contract that inherit of Openzeppelin and standards.

The is the main migration contract that will be deployed on the same chain as the PRL token. It will own the total supply of PRL at deployment and will allow users to migrate their Mimo to PRL on the same chain or by receiving omnichain messages from other chains. This contract inherits from LayerZero's OAppReceiver.

The will be deployed on the same chain as the PRL token and will allow user to bridge to/from different chain their PRL. This contract inherit of LayerZero's OFTAdapter that allow tokens' bridged on other chains to be lock into this contract.

The is the contract deployed on other chains that allow user to migrate Mimo to PRL from any chain. This contract inherit of LayerZero's OAppSender.

The will be deployed on other chains than where the PRL token is and will allow user to bridge to/from different chain their PRL. This contract inherit of LayerZero's OFTAdapter.

used by the MigrationContract to send/receive message link Mimo to PRL token migration.

used to make the PRL token bridgeable between chains.

is an OAppReceiver as its goal is to receive migration message.

is an OAppSender as its goal is to send migration message to the main chain.

is an OFTAdapter that allow to lock PRL token that has been bridged to other chains and to send/receive messages.

is an OFT that will mint/burn PRL on its chain and to send/receive messages.

By default LayerZero's OFT standard implement shareDecimals/decimalConversionRate to allow amount to be accepted on chains like Solana which are not uint256 but uint64. We fork the standard and removed all code related to shareDecimals/decimalConversionRate. Forked code is under folder.

Check the file for the deployed addresses on different networks.

For more details on the contract, refer to the .

PRL
ERC20
ERC20Permit
PrincipalMigrationContract
LockBox
PeripheralMigrationContract
PeripheralPRL
OApp standard
OFT standard
PrincipalMigrationContract
PeripheralMigrationContract
LockBox
PeripheraPRL
layerZero fork
DeployedAddresses.md
Audit details
PRL
PRL
PrincipalMigrationContract
PeripheralMigrationContract
LayerZero's OApp standard
LockBox
PeripheralPRL
LayerZero's OFT standard