Page cover image

📘Fundamentals

The Key to PRFCT Emissions Acquiring Liquidity The primary objective of a protocol's emissions lies in its ability to attract users and liquidity. As emphasized in the introductory section, liquidity can vary in value. PerfectSwap addresses this challenge by incentivizing emissions for pools that generate the highest fees for voters. The DEX continuously optimizes itself on a weekly basis as voters pursue the most attractive voting APRs. Voters' interests naturally align, as they exclusively receive fees and bribes from the pools they actively vote on.

Voting NFT (vePRFCT)

Taking a page from Curve's playbook, PerfectSwap employs a similar approach by having users lock PRFCT tokens into vePRFCT ("ve" denotes vote-escrowed). However, there is a significant difference: PerfectSwap doesn't tie the ve position to a specific account. Instead, it tokenizes the ve position into an NFT (ERC-721), thereby addressing the general capital inefficiency of ve assets and making them tradable.

Voting Influence

The overall voting influence within the protocol is determined by the total quantity of PRFCT tokens locked across all vePRFCT NFTs, adjusted by the cumulative linear time decay of these vests.

For example:

  • 1 PRFCT token locked for 4 years translates into a voting weight of 1, gradually decreasing over time. Thus, 1 PRFCT locked for 2 years would carry a voting weight of 0.5.

If, for instance, 60,000,000 PRFCT tokens were locked in vePRFCT contracts for 3 years, the protocol's total voting influence would be calculated as follows:

  • (3/4) * 60,000,000 = Voting weight of 45,000,000

Rewards Distribution

PerfectSwap has introduced a novel mechanism to enhance user gas cost savings. All types of rewards, including bribes and fees, are consolidated through the RewardDistributor.sol contract. Bribes are directly deposited into this contract with specified distribution periods, while trading fees are collected from the pools by the same contract. An off-chain process handles all the accounting, and the results are pushed to RewardDistributor.sol in the form of a merkle root. Users can then claim their rewards by providing the necessary merkle proof to the contract.

In the initial configuration, merkle roots are pushed on-chain every 24 hours. The merkle root incorporates a security feature, known as the publicly callable pauseClaims function. This feature allows any user to halt the claiming process by providing collateral, prompting the team to investigate potential errors.

PerfectSwap consistently publishes all the data used to calculate rewards, ensuring transparency and allowing users to independently verify the validity of the data pushed via the merkle roots. This commitment underscores the integrity of PerfectSwap's modern cryptographic practices.

Last updated