Symbiotic Rewards
Restaking rewards distribution from Symbiotic to Byzantine stakers and curators
Last updated
Restaking rewards distribution from Symbiotic to Byzantine stakers and curators
Last updated
This section explores the detailed technical structure of the contract which handles the restaking rewards on Symbiotic, focusing on how restaking rewards from Symbiotic are distributed to the Byzantine stakers and curators.
Every creation of a contract automatically deploys a SymbioticManager
contract.
Every inherits from SymbioticManager
.
All , Sym Byz vault stakers and curators interacts directly with SymbioticManager
to distribute and claim rewards.
The is used in both rewards distribution and claiming stages.
Unlike the Eigen rewards, Symbiotic rewards do not use Merkle tree.
A simplified and high level flow is as follows:
Networks interact directly with the SymbioticManager
to distribute rewards in a specific token at a particular timestamp.
Stakers claim rewards from SymbioticManager
.
Curator claims their fees from SymbioticManager
.
At every rewards distribution, the network provides a timestamp to retrieve the vault's active shares at that specific timestamp (activeSharesAt
) and logs it in the contract. Along with this, the timestamp
and distributed amount
are also stored in the contract.
At every rewards claim, the stored timestamp
is used to retrieve the active shares of the staker at that specific timestamp (activeSharesOfAt
).
The activeSharesOfAt
, along with the distributed amount
and activeSharesAt
of the vault, are used to calculate the staker's eligible reward amount. The formula is as follows:
All networks who have opted-in to the Sym Byz vault should calls this function to distribute rewards for the stakers of the vault. As explained in the last section, the timestamp as input to the function (encoded in data
) is used to retrieve the relevant checkpoints to mark the vault's total active shares and the staker's active shares when claiming rewards.
The final distributed amount is the amount of rewards that is left after subtracting the curator fee from the actual earnings.
A staker calls this function to claim rewards distributed by the networks.
Stakers must specify the token and the network they want to claim rewards for.
To claim all rewards distributed by various networks in different tokens from a Sym Byz vault, multiple calls to claimRewards
are required.
The curator of an Sym Byz Vault can set and adjust the curator fee percentage. They call this function claim all cumulative fees distributed in a specific token for a particular vault at once.
Each time a network calls the distributeRewards
, the curator fee amount is increased and stored in the contract.
Three checkpoints are created at every deposit and withdrawal of the Sym Byz Vault: , and . The new value is added to the list of existing values.