Reward Manager
1. Biweekly Reward Cycle
The Curvance Protocol operates on a biweekly (2-week) epoch cycle for distributing rewards point amounts across all supported chains. This process is coordinated by the MessagingHub contract which serves as the cross-chain communication layer.
Key aspects:
Each epoch lasts exactly 2 weeks as defined by
EPOCH_DURATION
in the CentralRegistry.The MessagingHub coordinates epoch transitions by querying points across all chains.
The RewardManager tracks which epoch's rewards have been delivered using
nextEpochToDeliver
.State transitions occur when the MessagingHub calls
recordEpochRewards()
with the calculated reward amounts.
State machine:

2. Pro-Rata Distribution
Rewards are distributed proportionally across all chains based on the amount of points on each chain.
Key aspects:
The MessagingHub uses Wormhole's Cross-Chain Query (CCQ) to get accurate point counts from all chains.
Reward distribution is calculated as:
(Chain's Points / Total Points) * Total Rewards
.Each chain receives a pro-rata share of the total protocol fees based on its proportion of points.
This creates an incentive for chains to accumulate points to increase their share of rewards.
Data flow:

3. Reward Accumulation
The system allows users to accumulate rewards over multiple epochs without having to claim them immediately.
Key aspects:
Each user has a
userNextClaimIndex
that tracks the next epoch they can claim rewards from.epochRewardsPerPoint
records the rewards allocated per point for each epoch.Users can claim multiple epochs of accumulated rewards in a single transaction.
The formula for a user's rewards for an epoch is:
(User's Points * epochRewardsPerPoint[epoch]) / WAD
.

4. USDC Distribution via CCTP/Wormhole
The cross-chain movement of rewards (primarily USDC) is handled through Circle's Cross-Chain Transfer Protocol (CCTP) and Wormhole's messaging system.
Key aspects:
The protocol uses CCTP to transfer USDC between chains, ensuring secure token transfers.
Wormhole's automatic relayer system delivers cross-chain messages with execution guarantees.
The MessagingHub sends both USDC tokens via CCTP and reward metadata via Wormhole.
When a chain receives USDC, it routes the tokens to its local RewardManager.
Cross-chain token flow:

This architecture ensures that rewards are efficiently distributed across chains while maintaining a consistent state of reward records throughout the entire protocol.
Last updated