@symbioticfi/rewards-v2
v1.0.0
Published
Symbiotic Rewards V2 repository contains an enhanced contracts for rewarding stakers, operators, and curators in various ways.
Downloads
6
Readme
Symbiotic Protocol is an extremely flexible and permissionless shared security system.
This repository contains Symbiotic Rewards V2 smart contracts.
Overview
3 singleton-style smart contracts per chain with Symbiotic Core contracts
Rewards - a single rewards contract to, currently, combine 2 types of rewards:
Vault Snapshot Rewards
- It provides a reward distribution using an on-chain state. Hence, it doesn’t require any off-chain part to exist, which can be useful for purely on-chain protocols.
- However, it doesn’t provide the "cumulative" characteristic for rewards. Also, its distribution process needs a separate distribution call for each vault.
- It uses a snapshot timestamp to retrieve the necessary data for the distribution (deposits, fees, etc.).
Cumulative Merkle Rewards
- It works using Merkle Trees, which allow for various complex schemas of reward distribution while enabling the distribution of rewards across all vaults, operators, and other entities in a single, low-cost transaction. Additionally, it allows for cumulative rewards, meaning that claim costs will remain low and near constant, regardless of the number of distributions.
- Due to the need for Merkle Trees construction, it needs an off-chain party to process it
CuratorRegistry - a registry to map vaults to their curators (fee receivers)
- Initially, only the vault’s
ownercan set a curator - Once set, only the curator can set another curator for the vault instead of him
- Initially, only the vault’s
FeeRegistry - fee registry for operators and curators
- Curators are responsible for setting fee percentages for themselves for each vault
- Also, it is possible to set the curator fee percentage applied depending on the distributing network
- Curators are responsible for setting fee percentages for all operators (e.g., 5% for all operators) for each vault (later, during rewards distribution, the fees are split between operators pro rata according to their contribution shares)
- Also, it is possible to set the operators’ fee percentages applied depending on the distributing network
- Initially, all fees are set to zero, so manual configuration is needed for each vault
- Curators are responsible for setting fee percentages for themselves for each vault
Documentation
- What are Rewards?
- How to distribute? (for Networks)
- How to claim? (for Operators)
- How to configure and claim fees? (for Curators)
Usage
Dependencies
- Git (installation)
- Foundry (installation)
Prerequisites
Clone the repository
git clone --recurse-submodules https://github.com/symbioticfi/rewards-v2.gitBuild, Test, and Format
forge build
forge test
forge fmtConfigure environment
Create .env based on the template:
ETH_RPC_URL=
ETHERSCAN_API_KEY=Security
Security audits are aggregated in ./audits.
