Definitions
-
Delegator - any contract from
NetworkRestakeDelegator/FullRestakeDelegator/OperatorSpecificDelegator/OperatorNetworkSpecificDelegator -
Slasher - any contract from
Slasher/VetoSlasher -
Vault - a set of contracts:
Vault,NetworkRestakeDelegator/FullRestakeDelegator/OperatorSpecificDelegator/OperatorNetworkSpecificDelegator,Slasher/VetoSlasherproviding the whole logic for shared security (all the contracts must be initialized to operate properly) -
Vault Epoch - a technical detail introduced to be able to process slashings properly (a current one can be got via
Vault.currentEpoch())- Stakersβ withdrawals become claimable and unslashable at the end of the subsequent relatively to the withdrawal request epoch.
- It doesnβt affect deposits, so they become an active stake instantly.
-
Vault Epoch Duration - a duration of Vault Epoch (can be got via
Vault.epochDuration()) -
Vault Epoch Duration Increase Delay - a delay in epochs, after which a new epoch duration is set when requested
-
Veto Duration (only for
VetoSlasher) - a duration when a slashing requests can be vetoed after its creation (can be got viaVetoSlasher.vetoDuration()) -
Vault Curator - an entity (or a set of entities) managing the following roles in the Vault:
(π§βπ§ - only one address may have such a role, π§βπ§π§βπ§π§βπ§ - any number of addresses may have such a role)-
π§βπ§
Vault:Owner- allowed to migrateVaultto new implementations proposed byVaultFactory:Owner(a.k.a., Symbiotic Team) -
π§βπ§π§βπ§π§βπ§
Vault:DEPOSIT_WHITELIST_SET_ROLE- allowed to enable/disable a whitelist for deposits (such that only whitelisted addresses are able to deposit) -
π§βπ§π§βπ§π§βπ§
Vault:DEPOSITOR_WHITELIST_ROLE- allowed to add/remove depositors to/from the deposits whitelist -
π§βπ§π§βπ§π§βπ§
Vault:IS_DEPOSIT_LIMIT_SET_ROLE- allowed to enable/disable a deposits limit (such that the slashable amount of Collateral cannot exceed the set limit) -
π§βπ§π§βπ§π§βπ§
Vault:DEPOSIT_LIMIT_SET_ROLE- allowed to set the deposit limit -
π§βπ§π§βπ§π§βπ§
Vault:DEFAULT_ADMIN_ROLE- allowed to grant/remove such roles to/from any addresses:Vault:DEPOSIT_WHITELIST_SET_ROLEVault:DEPOSITOR_WHITELIST_ROLEVault:IS_DEPOSIT_LIMIT_SET_ROLEVault:DEPOSIT_LIMIT_SET_ROLE
-
π§βπ§π§βπ§π§βπ§
NetworkRestakeDelegator:HOOK_SET_ROLE/FullRestakeDelegator:HOOK_SET_ROLE/OperatorSpecificDelegator:HOOK_SET_ROLE/OperatorNetworkSpecificDelegator:HOOK_SET_ROLE- allowed to set an on-slash hook (e.g., it can be used to adjust the delegations automatically) -
π§βπ§π§βπ§π§βπ§
NetworkRestakeDelegator:NETWORK_LIMIT_SET_ROLE/FullRestakeDelegator:NETWORK_LIMIT_SET_ROLE/OperatorSpecificDelegator:NETWORK_LIMIT_SET_ROLE- allowed to set a stake delegation limit for an each Sub-network -
π§βπ§π§βπ§π§βπ§
NetworkRestakeDelegator:OPERATOR_NETWORK_SHARES_SET_ROLE- allowed to configure any Sub-networkβs stake delegations across Operators -
π§βπ§π§βπ§π§βπ§
FullRestakeDelegator:OPERATOR_NETWORK_LIMIT_SET_ROLE- allowed to set a stake delegation limit for any Operator inside any Sub-network -
π§βπ§π§βπ§π§βπ§
NetworkRestakeDelegator:DEFAULT_ADMIN_ROLE/FullRestakeDelegator:DEFAULT_ADMIN_ROLE/OperatorSpecificDelegator:DEFAULT_ADMIN_ROLE/OperatorNetworkSpecificDelegators:DEFAULT_ADMIN_ROLE- allowed to grant/remove such roles to/from any addresses:NetworkRestakeDelegator:HOOK_SET_ROLE/FullRestakeDelegator:HOOK_SET_ROLE/OperatorSpecificDelegator:HOOK_SET_ROLE/OperatorNetworkSpecificDelegators:HOOK_SET_ROLENetworkRestakeDelegator:NETWORK_LIMIT_SET_ROLE/FullRestakeDelegator:NETWORK_LIMIT_SET_ROLE/OperatorSpecificDelegator:NETWORK_LIMIT_SET_ROLENetworkRestakeDelegator:OPERATOR_NETWORK_SHARES_SET_ROLE/FullRestakeDelegator:OPERATOR_NETWORK_LIMIT_SET_ROLE
-
π§βπ§π§βπ§π§βπ§
DefaultStakerRewards:ADMIN_FEE_CLAIM_ROLE- allowed to claim the fees from Staker Rewards -
π§βπ§π§βπ§π§βπ§
DefaultStakerRewards:ADMIN_FEE_SET_ROLE- allowed to set the fee percent for Staker Rewards -
π§βπ§π§βπ§π§βπ§
DefaultStakerRewards:DEFAULT_ADMIN_ROLE- allowed to grant/remove such roles to/from any addresses:DefaultStakerRewards:ADMIN_FEE_CLAIM_ROLEDefaultStakerRewards:ADMIN_FEE_SET_ROLE
-
-
Vault Migration - a process when
Vault:Ownerupgrades Vault to the new version, whitelisted byVaultFactory:Owner -
Collateral - an
ERC20contract representing any asset which is able to provide economic security to networks (can be got viaVault.collateral()) -
Rewards -
ERC20contracts representing any assets that are paid by Networks to other parties- Staker Rewards - Rewards which are paid to Stakers for providing capital for the economic security of Networks (via
DefaultStakerRewards) - Operator Rewards - Rewards which are paid to Operators for maintaining networksβ nodes (via
DefaultOperatorRewards)
- Staker Rewards - Rewards which are paid to Stakers for providing capital for the economic security of Networks (via
-
Burner - an address (e.g., a permissionless contract, DAO, multi-sig, etc.) responsible for the processing of the slashed Collateral (can be got via
Vault.burner()):- a contract unwrapping an LST ETH Collateral and burning its underlying ETH
- a DAO redistributing the slashed Collateral from dishonest Operators to honest ones
- a contract providing liquidity to some DEX protocols and burning LP tokens
- etc.
-
Staker - an entity depositing Collateral into Vault (a.k.a., provider of capital for Networksβ economic security)
-
Network - an entity managing its configuration across the Vaults to provide security to its underlying real network (have to be registered via
NetworkRegistry.registerNetwork()):- is able to set its Middleware (via
NetworkMiddlewareService.setMiddleware()) - is able to set its Sub-networksβ stake delegation limit (via
NetworkRestakeDelegator.setMaxNetworkLimit()/FullRestakeDelegator.setMaxNetworkLimit()/OperatorSpecificDelegator.setMaxNetworkLimit()/OperatorNetworkSpecificDelegators.setMaxNetworkLimit()) - is able to set Resolvers for its Sub-networks (via
VetoSlasher.setResolver())
- is able to set its Middleware (via
-
Sub-network - a technical detail allowing for a Network to have different Resolvers for different pieces of a stake while having only a single opt-in event for Operators
-
Network Middleware - an address (e.g., a permissionless contract, DAO, multi-sig, etc.) responsible for such functionality on behalf of any Networkβs Sub-network:
- slash a provided stake (via
Slasher.slash()orVetoSlasher.requestSlash()/VetoSlasher.executeSlash()) - distribute rewards (via
DefaultStakerRewards.distributeReward())
- slash a provided stake (via
-
Network Epoch - a period of time while the same Networkβs validator set is used
-
Network Slashing Window - a period of time allocated after each Network Epoch to slash malicious Operators, and should be equal to [for
VetoSlasher: + Veto Duration + ] -
Operator - an entity managing its agreement to work across the Symbiotic ecosystem (have to be registered via
OperatorRegistry.registerOperator())- is able to opt into any Vault (via
OperatorVaultOptInService.optIn()) - is able to opt into any Network (via
OperatorNetworkOptInService.optIn())
- is able to opt into any Vault (via
-
Resolver - an entity responsible for vetoing malicious/invalid slashing requests
-
Capture Timestamp - a point in time the operatorβs stake was captured at (the stake can be converted to the operatorβs voting power in any way)