Skip to content

parallel-protocol/parallel-tokenomics

Repository files navigation

Parallel Tokenomics

1. Overview

The Parallel Tokenomics system consists of smart contracts that enable:

  • Forwarding fees to the main fee distributor on the destination chain (SideChainFeeDistributor)
  • Distributing protocol-generated fees to registered fee receivers (MainFeeDistributor)
  • Staking PRL tokens to earn rewards through:
    • Single staking (sPRL1): Direct PRL staking with time-lock and rewards
    • Balancer Pool staking (sPRL2): 80PRL/20WETH pool tokens staked into Aura.finance
  • Distributing rewards to sPRL1/sPRL2 users via off-chain calculations and merkle proofs (RewardMerkleDistributor)

Key Features

  • Time-lock staking mechanism with configurable early withdrawal penalties
  • Dual staking options with different risk-reward profiles
  • Cross-chain fee collection and distribution
  • Merkle-based reward distribution system
  • Integration with Balancer and Aura.finance protocols

Requirements

  • PRL tokens for staking (sPRL2 requires Balancer V3 and Aura.finance)
  • ETH/WETH for sPRL2 liquidity provision
  • Expected supported networks:
    • sPRL(s) tokens: Mainnet (as BalancerV3 and Aura.finance are required)
    • RewardMerkleDistributor: Mainnet
    • MainFeeDistributor: Mainnet
    • SideChainFeeDistributor: Polygon, Fantom

The high-level architecture of the protocol is shown below:

High Level Architecture

2. Folder Structure

  • Broadcast folder contains Foundry transactions executed by scripts.
  • Contracts folder contains contracts source code.
  • Deploy folder contains hardhat deployment scripts.
  • Deployments folder contains info of contracts deployed per network.
  • Docs folder contains all documentation related to main contracts.
  • Script folder contains Foundry scripts to interact with onchain contracts.
  • Test folder contains all tests related to the contracts with mocks and settings.
  • Utils folder contains helper functions.

3. Documentation

Additional documentation can be found in the /docs directory:

4. Getting Started

Foundry

Foundry is used for testing and scripting. To Install foundry follow the instructions.

Install js dependencies

bun i

Fill the .env file with your data

The Foundry script relies solely on the PRIVATE_KEY. The MNEMONIC is used on the Hardhat side and will override the PRIVATE_KEY if it is defined.

export API_KEY_ALCHEMY="YOUR_API_KEY_ALCHEMY"
export API_KEY_ETHERSCAN="YOUR_API_KEY_ETHERSCAN"
export API_KEY_POLYGONSCAN="YOUR_API_KEY_POLYGONSCAN"
export MNEMONIC="YOUR_MNEMONIC"
export PRIVATE_KEY="YOUR_PRIVATE_KEY"
export FOUNDRY_PROFILE="default"

Compile contracts

bun run compile

Run tests

bun run test

You will find other useful commands in the package.json file.

Licences

All contracts is under the MIT License, see LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published