Skip to main content

suix_getLatestSuiSystemState

Return the latest SUI system state object on-chain.

Return the latest SUI system state object on-chain.

Parameters

  • none

Returns

SuiSystemStateSummary : <SuiSystemStateSummary>

  • activeValidators : <[SuiValidatorSummary]> - The list of active validators in the current epoch.
  • atRiskValidators : <[SuiAddress]> - Map storing the number of epochs for which each validator has been below the low stake threshold.
  • epoch : <[BigInt_for_uint64]> - The current epoch ID, starting from 0.
  • epochDurationMs : <[BigInt_for_uint64]> - The duration of an epoch, in milliseconds.
  • epochStartTimestampMs : <[BigInt_for_uint64]> - Unix timestamp of the current epoch start
  • inactivePoolsId : <[ObjectID]> - ID of the object that maps from a staking pool ID to the inactive validator that has that pool as its staking pool.
  • inactivePoolsSize : <[BigInt_for_uint64]> - Number of inactive staking pools.
  • maxValidatorCount : <[BigInt_for_uint64]> - Maximum number of active validators at any moment. We do not allow the number of validators in any epoch to go above this.
  • minValidatorJoiningStake : <[BigInt_for_uint64]> - Lower-bound on the amount of stake required to become a validator.
  • pendingActiveValidatorsId : <[ObjectID]> - ID of the object that contains the list of new validators that will join at the end of the epoch.
  • pendingActiveValidatorsSize : <[BigInt_for_uint64]> - Number of new validators that will join at the end of the epoch.
  • pendingRemovals : <[BigInt_for_uint64]> - Removal requests from the validators. Each element is an index pointing to `active_validators`.
  • protocolVersion : <[BigInt_for_uint64]> - The current protocol version, starting from 1.
  • referenceGasPrice : <[BigInt_for_uint64]> - The reference gas price for the current epoch.
  • safeMode : <boolean> - Whether the system is running in a downgraded safe mode due to a non-recoverable bug. This is set whenever we failed to execute advance_epoch, and ended up executing advance_epoch_safe_mode. It can be reset once we are able to successfully execute advance_epoch.
  • safeModeComputationRewards : <[BigInt_for_uint64]> - Amount of computation rewards accumulated (and not yet distributed) during safe mode.
  • safeModeNonRefundableStorageFee : <[BigInt_for_uint64]> - Amount of non-refundable storage fee accumulated during safe mode.
  • safeModeStorageRebates : <[BigInt_for_uint64]> - Amount of storage rebates accumulated (and not yet burned) during safe mode.
  • safeModeStorageRewards : <[BigInt_for_uint64]> - Amount of storage rewards accumulated (and not yet distributed) during safe mode.
  • stakeSubsidyBalance : <[BigInt_for_uint64]> - Balance of SUI set aside for stake subsidies that will be drawn down over time.
  • stakeSubsidyCurrentDistributionAmount : <[BigInt_for_uint64]> - The amount of stake subsidy to be drawn down per epoch. This amount decays and decreases over time.
  • stakeSubsidyDecreaseRate : <uint16> - The rate at which the distribution amount decays at the end of each period. Expressed in basis points.
  • stakeSubsidyDistributionCounter : <[BigInt_for_uint64]> - This counter may be different from the current epoch number if in some epochs we decide to skip the subsidy.
  • stakeSubsidyPeriodLength : <[BigInt_for_uint64]> - Number of distributions to occur before the distribution amount decays.
  • stakeSubsidyStartEpoch : <[BigInt_for_uint64]> - The starting epoch in which stake subsidies start being paid out
  • stakingPoolMappingsId : <[ObjectID]> - ID of the object that maps from staking pool's ID to the sui address of a validator.
  • stakingPoolMappingsSize : <[BigInt_for_uint64]> - Number of staking pool mappings.
  • storageFundNonRefundableBalance : <[BigInt_for_uint64]> - The non-refundable portion of the storage fund coming from storage reinvestment, non-refundable storage rebates and any leftover staking rewards.
  • storageFundTotalObjectStorageRebates : <[BigInt_for_uint64]> - The storage rebates of all the objects on-chain stored in the storage fund.
  • systemStateVersion : <[BigInt_for_uint64]> - The current version of the system state data structure type.
  • totalStake : <[BigInt_for_uint64]> - Total amount of stake from all active validators at the beginning of the epoch.
  • validatorCandidatesId : <[ObjectID]> - ID of the object that stores preactive validators, mapping their addresses to their `Validator` structs.
  • validatorCandidatesSize : <[BigInt_for_uint64]> - Number of preactive validators.
  • validatorLowStakeGracePeriod : <[BigInt_for_uint64]> - A validator can have stake below `validator_low_stake_threshold` for this many epochs before being kicked out.
  • validatorLowStakeThreshold : <[BigInt_for_uint64]> - Validators with stake amount below `validator_low_stake_threshold` are considered to have low stake and will be escorted out of the validator set after being below this threshold for more than `validator_low_stake_grace_period` number of epochs.
  • validatorReportRecords : <[SuiAddress]> - A map storing the records of validator reporting each other.
  • validatorVeryLowStakeThreshold : <[BigInt_for_uint64]> - Validators with stake below `validator_very_low_stake_threshold` will be removed immediately at epoch change, no grace period.

Example Request and Result for suix_getLatestSuiSystemState

Request

curl --location 'https://sui-testnet.blastapi.io/<project-id>' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"id": 1,
"method": "suix_getLatestSuiSystemState",
"params": [
]
}'

Result:

{
"jsonrpc": "2.0",
"result": {
"epoch": "767",
"protocolVersion": "6",
"systemStateVersion": "2",
"storageFundTotalObjectStorageRebates": "523696311407585",
"storageFundNonRefundableBalance": "20534443039894",
"referenceGasPrice": "1000",
"safeMode": false,
"safeModeStorageRewards": "0",
"safeModeComputationRewards": "0",
"safeModeStorageRebates": "0",
"safeModeNonRefundableStorageFee": "0",
"epochStartTimestampMs": "1682285932333",
"epochDurationMs": "86400000",
"stakeSubsidyStartEpoch": "20",
"maxValidatorCount": "150",
"minValidatorJoiningStake": "30000000000000000",
"validatorLowStakeThreshold": "20000000000000000",
"validatorVeryLowStakeThreshold": "15000000000000000",
"validatorLowStakeGracePeriod": "7",
"stakeSubsidyBalance": "976950000000000000",
"stakeSubsidyDistributionCounter": "25",
"stakeSubsidyCurrentDistributionAmount": "810000000000000",
"stakeSubsidyPeriodLength": "10",
"stakeSubsidyDecreaseRate": 1000,
"totalStake": "4898421081893495179",
"activeValidators": [
{
"suiAddress": "0x44b1b319e23495995fc837dafd28fc6af8b645edddff0fc1467f1ad631362c23",
"protocolPubkeyBytes": "gBJ8cMMnbAGi9dtt/tToqyXNsnxHNMpKeMNjOTpaPVe/lv17uYC3msT04XWR92rUBP9u2Zxv5PIJC4GiO1OiMY9kVb7/bFp5v+ENILso3sWLzY2VC/QmvGoPdVJRmD32",
"networkPubkeyBytes": "A0yziBvINOwJbJufZAbmHnQQ3NYRluC9OCRp2otBrJY=",
"workerPubkeyBytes": "hr8bhYmghKoyFtVptv61PMEBeYmVWheXPfwXYdVguBs=",
"proofOfPossessionBytes": "uQ86a3deTWSFYLlhXNsXIO8QwLM4MSECA9mue6a/hUoAi0TQvzXAKZov/pbi8wmy",
"name": "Blockscope.net",
"description": "Building Web3",
"imageUrl": "https://www.blockscope.net/blockscope_thumbnail_360_360.png",
"projectUrl": "https://blockscope.net",
"netAddress": "/dns/testnet.sui.blockscope.net/tcp/8080/http",
"p2pAddress": "/dns/testnet.sui.blockscope.net/udp/8084",
"primaryAddress": "/dns/testnet.sui.blockscope.net/udp/8081",
"workerAddress": "/dns/testnet.sui.blockscope.net/udp/8082",
"nextEpochProtocolPubkeyBytes": null,
"nextEpochProofOfPossession": null,
"nextEpochNetworkPubkeyBytes": null,
"nextEpochWorkerPubkeyBytes": null,
"nextEpochNetAddress": null,
"nextEpochP2pAddress": null,
"nextEpochPrimaryAddress": null,
"nextEpochWorkerAddress": null,
"votingPower": "308",
"operationCapId": "0x27a70a250e59a5d6c5b36e2b3ea61d658fb94677fdaa86ae23f5314559bf7f0d",
"gasPrice": "460",
"commissionRate": "1000",
"nextEpochStake": "150860286698585409",
"nextEpochGasPrice": "460",
"nextEpochCommissionRate": "1000",
"stakingPoolId": "0xb18d20dc83a1f12ed33660455a8856c77e1049a7c36008e2c044bf35eba93115",
"stakingPoolActivationEpoch": "0",
"stakingPoolDeactivationEpoch": null,
"stakingPoolSuiBalance": "150860253809317526",
"rewardsPool": "649955773662615",
"poolTokenBalance": "150209819035520392",
"pendingStake": "41000000000",
"pendingTotalSuiWithdraw": "8110732117",
"pendingPoolTokenWithdraw": "8075762655",
"exchangeRatesId": "0x6d24e57f2a020d5519c7e49ee66d3feeb197f557c82a6f870dadf5ecf831ae65",
"exchangeRatesSize": "28"
}
]
}
}