suix_getLatestSuiSystemState

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"
            }
        ]
    }
}

Last updated