# Tokenomics

## Overview

The Parallel Tokenomics is a set of contracts that allows :

* to send the fees to the main fee distributor on the destination chain (SideChainFeeDistributor)
* to distribute fees generated by the protocol to the listed fee receivers (MainFeeDistributor)
* users to stake their PRL tokens to earn rewards either in single staking (sPRL1) or in a 80PRL/20WETH balancer pool (BPT) that is deposited into aura.finance (sPRL2).
* distribute rewards to sPRL1/sPRL2 users using off-chain calculation and merkle proofs (RewardMerkleDistributor)

<figure><img src="https://github.com/parallel-protocol/parallel-tokenomics/raw/main/docs/assets/high-level-architecture.png" alt=""><figcaption><p>high level architecture</p></figcaption></figure>

## Security Point

* OpenZeppelin AccessManged dependency is used to manage the access to the contracts.
* Emergency pause mechanisms are implemented in the contracts using the `pause()` and `unpause()` functions from the OpenZeppelin library.
* OpenZeppelin ReentrancyGuard is used to prevent reentrancy attacks.
* Slippage protection on deposit/withdraw that will go through Balancer during sPRL2 flow.

## Deployment

Check the [DeployedAddresses.md](https://github.com/parallel-protocol/parallel-tokenomics/blob/main/docs/Deployment.md) file for the deployed addresses on different networks.

## Documentation for Audits

For more details on the contract, refer to the Audit [details](https://github.com/parallel-protocol/parallel-tokenomics/tree/main/docs/audits).
