Skip to main content

SSVNetworkViews

The SSVNetworkViews contract is for reading information about the network and its participants.

General Methods

getNetworkFee()

Description: Returns current network fee.

Return values:

ParameterTypeDescription
feeuint256The fee charged by the network proportional to Effective Balance (denominated as ETH per block)

getNetworkEarnings()

Description: Returns accumulated network fees not yet withdrawn.

Return values:

ParameterTypeDescription
amountuint256Amount of fees accumulated in the network treasury

getLiquidationThresholdPeriod()

Description: Returns the minimum duration (in blocks) which a cluster has to have sufficient balance (liquidation collateral) to not be liquidated.

Return values

ParameterTypeDescription
blocksuint64The minimum duration (blocks) which a cluster has to have sufficient balance (liquidation collateral) to not be liquidated.

getMinimumLiquidationCollateral()

Description: Returns the minimum amount which a cluster has to have sufficient balance (liquidation collateral) to not be liquidated.

Return values

ParameterTypeDescription
amountuint256The minimum amount of ETH which a cluster has to have (liquidation collateral) to not be liquidated.

getOperatorFeeIncreaseLimit()

Description: Returns the max amount by which operators can increase fees in each fee update cycle. This does refer to the max operator fee limitation, but to the rate (%) by which it can be increased.

Return values

ParameterTypeDescription
amountuint64The maximum increase in percentage the operator can update his fee to.

getOperatorFeePeriods()

Description: returns the time windows (in seconds) of operators declaration and execution fee periods.

Return values:

ParameterTypeDescription
secondsuint64The duration (seconds) until an operator can execute a fee after declaring it
secondsuint64The duration (seconds) until an operator can execute a fee after declaring it

getMaximumOperatorFee()

Description: Gets the operator maximum fee for operators that use ETH token

Return values

ParameterTypeDescription
maxFeeuint256The maximum fee value (ETH/year)

getValidatorsPerOperatorLimit()

Description: Returns the maximum amount of validators an operator may manage.

Return values

ParameterTypeDescription
Validator limituint32amount of validators an operator may manage.

Operator Methods

getOperatorById(operatorId)

Description: Returns operator's data.

ParameterTypeDescription
operatorIduint64The operator id

Return values:

ParameterTypeDescription
owneraddressThe operator's admin address (for management purposes)
feeuint64256The fee charged by the operator (denominated as ETH per block)
validatorCountuint32The amount of managed validators
whitelistedContractaddressThe external contract set to manage this operator's whitelisted addresses
isPrivatebooleanIndication if operator is permissioned
activebooleanOperator network status

getOperatorFee(operatorId)

Description: returns current operator's fee (not declared).

ParameterTypeDescription
operatorIduint64The operator id

Return values

ParameterTypeDescription
declaredFeeuint256The fee charged by the operator (denominated as ETH per block)

getOperatorDeclaredFee(operatorId)

Description: Returns the declared fee (not actual fee) together with the execution time window.

ParameterTypeDescription
operatorIduint64The operator id

Return value

ParameterTypeDescription
declaredFeeuint256The fee declared by the operator (denominated as ETH per block)

getOperatorEarnings(operatorId)

Description: Returns the outstanding earnings of an operator.

ParameterTypeDescription
operatorIduint64The operator id

Return values

ParameterTypeDescription
balanceuint256Operators outstanding earnings in ETH.

getWhitelistedOperators(operatorIds, whitelistedAddress)

Description: Returns a list of operators that have this address whitelisted for them.

ParameterTypeDescription
operatorIdsuint64[]List of operators Ids.
whitelistedAddressaddressETH1 address

Return values

ParameterTypeDescription
whitelistedOperatorIdsuint64[]List of operator IDs that this address is whitelisted for.

isWhitelistingContract(contractAddress)

Description: Returns if a contract address is a valid whitelisting contract or not.

ParameterTypeDescription
whitelistedAddressaddressWhitelisting contract address.

Return values

ParameterTypeDescription
isWhitelistingContractboolTrue if contract is valid, false if not.

isAddressWhitelistedInWhitelistingContract(addressToCheck, operatorId, whitelistingContract)

Description: Checks the whitelisted contract for an operator to see if the address provided is whitelisted for the given operator.

ParameterTypeDescription
addressToCheckaddressAddress we want to check is whitelisted.
operatorIduint256Operator ID.
whitelistedAddressaddressWhitelisting contract address.

Return values

ParameterTypeDescription
isWhitelistedboolTrue if address is whitelisted, false if not.

Cluster Methods

getBalance(owner, operatorIds, cluster)

Description: Returns the outstanding ETH balance of a cluster.

ParameterTypeDescription
owneraddressThe cluster owner address
operatorIdsuint64[]List of cluster operators Ids
clustertuple[]Object containing the latest cluster snapshot data - obtained using the SSV Scanner tool

Return values:

ParameterTypeDescription
balanceuint256Clusters outstanding balance denominated in ETH

getBurnRate(owner, operatorIds, cluster)

Description: Returns current ongoing expenses of ETH for a particular SSV cluster balance on per block basis (aggregates all expenses for all the validators in this cluster).\

ParameterTypeDescription
owneraddressThe user address
operatorIdsuint64[]List of cluster operators Ids.
clustertuple[]Object containing the latest cluster snapshot data - obtained using the SSV Subgraph, or SSV Scanner tools If this is the 1st validator within a specific cluster (unique set of operators), use - {0,0,0,true,0}

Return values

ParameterTypeDescription
burnRateuint256The rate per block in which the account spends ETH.

getClusterAssetType(address,uint64[])

Description: Payment asset for the cluster identified by provided parameters.

ParameterTypeDescription
owneraddressThe user address
operatorIdsuint64[]List of cluster operators Ids.

Return values

ParameterTypeDescription
Cluster asset typeuint8Cluster asset type

getEffectiveBalance(address,uint64[],tuple)

Description: Total Effective Balance of the cluster identified by the provided parameters.

ParameterTypeDescription
owneraddressThe user address
operatorIdsuint64[]List of cluster operators Ids.
clustertuple[]Object containing the latest cluster snapshot data - obtained using the SSV Subgraph, or SSV Scanner tools If this is the 1st validator within a specific cluster (unique set of operators), use - {0,0,0,true,0}

Return values

ParameterTypeDescription
effectiveBalanceuint32Total effective balance of the identified cluster

Oracle Methods

getActiveOracleIds()

Description: IDs of the currently active Oracles.

Return values

ParameterTypeDescription
oracleIdsuint32[4]The active oracles' IDs.

getOracle(uint32)

Description: Wallet address of the Oracle identified by the provided ID.

ParameterTypeDescription
oracleIduint32ID of the oracle to fetch.

Return values

ParameterTypeDescription
Wallet addressaddressWallet address of the Oracle identified by the provided ID.

getOracleWeight(uint32)

Description: Delegation weight associated with the Oracle identified by the provided ID.

ParameterTypeDescription
oracleIduint32ID of the oracle to fetch.

Return values

ParameterTypeDescription
Delegation weightunit256Delegation weight associated with the Oracle identified by the provided ID.

getUserDelegation(address)

Description: Returns the delegations made by the provided wallet address to the active Oracles.

ParameterTypeDescription
addressaddressWallet address to fetch delegations.

Return values

ParameterTypeDescription
oracleIdsuint32[4]The oracles' IDs.
amountsuint256[4]The delegations made by each Oracle.

getQuorumBps()

Description: Quorum the Oracles need to reach in order to commit a Hash root, measured in Base Points.

Return values

ParameterTypeDescription
Quorum Base Pointsuint16Quorum the Oracles need to reach in order to commit a Hash root.

getCommittedRoot(uint64)

Description: Hash root of the total effective balance committed by the Oracles on the given block.

ParameterTypeDescription
blockNumuint64[]Block number.

Return values

ParameterTypeDescription
Hash rootbytes32of the total effective balance committed by the Oracles on the given block.

Staking Methods

accEthPerShare()

Description: Global cumulative ETH reward index per 1 cSSV share (fixed-point, scaled by PRECISION). Used to compute each account’s pending ETH via shares * index - rewardDebt.

Return values

ParameterTypeDescription
ETH reward indexuint256Global cumulative ETH reward index

cooldownDuration()

Description: Delay between request for withdrawal of staked SSV and the availability for tokens to be withdrawn.

Return values

ParameterTypeDescription
Cooldown durationuint256The delay duration

pendingUnstake(address)

Description: List of pending unstaked token amounts and their respective remaining cooldown.

ParameterTypeDescription
Wallet addressaddressUser wallet address.

Return values

ParameterTypeDescription
amounts[]uint256Amounts of pending unstaked token requests.
unlockTimes[]uint256The unlock time for each of the unstaking requests.

previewClaimableEth(address)

Description: Amount of accrued ETH the provided address can claim.

ParameterTypeDescription
Wallet addressaddressUser wallet address.

Return values

ParameterTypeDescription
Accrued amountuint256Previewed amount of claimable ETH for the provided address.

stakedBalanceOf(address)

Description: Total amount of SSV tokens staked by the provided address.

ParameterTypeDescription
Wallet addressaddressUser wallet address.

Return values

ParameterTypeDescription
Staked amountuint256Total amount of SSV token staked by the provided address.

stakingEthPoolBalance()

Description: Total amount of ETH accrued in fees by the protocol.

Return values

ParameterTypeDescription
ETH Accrueduint64Total amount of ETH accrued in fees by the protocol

totalStaked()

Description: Total amount of SSV tokens staked in the protocol.

Return values

ParameterTypeDescription
Total stakeduint256Amount of SSV tokens staked in the protocol.

Liquidator Methods

isLiquidatable(owner, operatorIds, cluster)

Description: Returns true if the specified cluster is under the liquidation threshold and can be liquidated.

ParameterTypeDescription
owneraddressThe user address
operatorIdsuint64[]List of cluster operators Ids.
clustertuple[]Object containing the latest cluster snapshot data - obtained using the SSV Subgraph, or SSV Scanner tools If this is the 1st validator within a specific cluster (unique set of operators), use - {0,0,0,true,0}

Return values

ParameterTypeDescription
isLiquidatablebooleanIndication if a cluster could be liquidated

isLiquidated(owner, operatorIds, cluster)

Description: Returns true if the provided cluster is liquidated.

ParameterTypeDescription
owneraddressThe user address
operatorIdsuint64[]List of cluster operators Ids.
clustertuple[]Object containing the latest cluster snapshot data - obtained using the SSV Subgraph, or SSV Scanner tools If this is the 1st validator within a specific cluster (unique set of operators), use - {0,0,0,true,0}

Return values

ParameterTypeDescription
isLiquidatedbooleanIndication if a cluster is liquidated

Legacy Methods

getBalanceSSV(owner, operatorIds, cluster)

Description: Returns the outstanding SSV balance of a legacy (SSV-based) cluster.

ParameterTypeDescription
owneraddressThe cluster owner address
operatorIdsuint64[]List of cluster operators Ids
clustertuple[]Object containing the latest cluster snapshot data - obtained using the SSV Scanner tool

Return values:

ParameterTypeDescription
balanceuint256Clusters outstanding balance denominated in SSV

getBurnRateSSV(owner, operatorIds, cluster)

Description: Returns current ongoing expenses of SSV for a particular SSV cluster balance on per block basis (aggregates all expenses for all the validators in this cluster).\

ParameterTypeDescription
owneraddressThe user address
operatorIdsuint64[]List of cluster operators Ids.
clustertuple[]Object containing the latest cluster snapshot data - obtained using the SSV Subgraph, or SSV Scanner tools If this is the 1st validator within a specific cluster (unique set of operators), use - {0,0,0,true,0}

Return values

ParameterTypeDescription
burnRateuint256The rate per block in which the account spends ETH.

getNetworkFeeSSV()

Description: Returns current network fee for legacy (SSV-based) clusters.

Return values:

ParameterTypeDescription
feeuint256The fee charged by the network (denominated as SSV per block)

getNetworkEarningsSSV()

Description: Returns accumulated network fees not yet withdrawn from the legacy (SSV-based) clusters.

Return values:

ParameterTypeDescription
amountuint256Amount of fees accumulated in the network treasury

getLiquidationThresholdPeriodSSV()

Description: Returns the minimum duration (in blocks) which legacy cluster has to have sufficient balance (liquidation collateral) to not be liquidated.

Return values

ParameterTypeDescription
blocksuint64The minimum duration (blocks) which legacy cluster has to have sufficient balance (liquidation collateral) to not be liquidated.

getMinimumLiquidationCollateralSSV()

Description: Returns the minimum amount which legacy cluster has to have sufficient balance (liquidation collateral) to not be liquidated.

Return values

ParameterTypeDescription
amountuint256The minimum amount of SSV which a cluster has to have (liquidation collateral) to not be liquidated.

getMaximumOperatorFeeSSV()

Description: Gets the operator maximum fee for operators that use SSV token

Return values

ParameterTypeDescription
maxFeeuint64The maximum fee value (SSV/year)

getOperatorByIdSSV(operatorId)

Description: Returns operator's data for operators participating in legacy clusters.

ParameterTypeDescription
operatorIduint64The operator id

Return values:

ParameterTypeDescription
owneraddressThe operator's admin address (for management purposes)
feeuint64256The fee charged by the operator (denominated as SSV per block)
validatorCountuint32The amount of managed validators
whitelistedContractaddressThe external contract set to manage this operator's whitelisted addresses
isPrivatebooleanIndication if operator is permissioned
activebooleanOperator network status

getOperatorFeeSSV(operatorId)

Description: returns current operator's fee (not declared).

ParameterTypeDescription
operatorIduint64The operator id

Return values

ParameterTypeDescription
declaredFeeuint256The fee charged by the operator (denominated as SSV per block)

getOperatorEarningsSSV(operatorId)

Description: Returns the outstanding earnings of an operator participating legacy cluster(s).

ParameterTypeDescription
operatorIduint64The operator id

Return values

ParameterTypeDescription
balanceuint256Operators outstanding earnings in SSV.

isLiquidatableSSV(owner, operatorIds, cluster)

Description: Returns true if the specified legacy cluster is under the liquidation threshold and can be liquidated.

ParameterTypeDescription
owneraddressThe user address
operatorIdsuint64[]List of cluster operators Ids.
clustertuple[]Object containing the latest cluster snapshot data - obtained using the SSV Subgraph, or SSV Scanner tools If this is the 1st validator within a specific cluster (unique set of operators), use - {0,0,0,true,0}

Return values

ParameterTypeDescription
isLiquidatablebooleanIndication if a legacy cluster could be liquidated