Skip to content

suix_getLatestSuiSystemState ​

Governance Read API

Return the latest SUI system state object on-chain.

Parameters ​

None.

Result ​

  • SuiSystemStateSummary · SuiSystemStateSummary

    • activeValidators · SuiValidatorSummary[] · requiredThe list of active validators in the current epoch.
    • atRiskValidators · [SuiAddress, BigInt<u64>][] · requiredMap storing the number of epochs for which each validator has been below the low stake threshold.
    • epoch · BigInt<u64> · requiredThe current epoch ID, starting from 0.
    • epochDurationMs · BigInt<u64> · requiredThe duration of an epoch, in milliseconds.
    • epochStartTimestampMs · BigInt<u64> · requiredUnix timestamp of the current epoch start
    • inactivePoolsId · ObjectID · requiredID of the object that maps from a staking pool ID to the inactive validator that has that pool as its staking pool.
    • inactivePoolsSize · BigInt<u64> · requiredNumber of inactive staking pools.
    • maxValidatorCount · BigInt<u64> · requiredMaximum number of active validators at any moment. We do not allow the number of validators in any epoch to go above this.
    • minValidatorJoiningStake · BigInt<u64> · requiredLower-bound on the amount of stake required to become a validator.
    • pendingActiveValidatorsId · ObjectID · requiredID of the object that contains the list of new validators that will join at the end of the epoch.
    • pendingActiveValidatorsSize · BigInt<u64> · requiredNumber of new validators that will join at the end of the epoch.
    • pendingRemovals · BigInt<u64>[] · requiredRemoval requests from the validators. Each element is an index pointing to active_validators.
    • protocolVersion · BigInt<u64> · requiredThe current protocol version, starting from 1.
    • referenceGasPrice · BigInt<u64> · requiredThe reference gas price for the current epoch.
    • safeMode · boolean · requiredWhether 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<u64> · requiredAmount of computation rewards accumulated (and not yet distributed) during safe mode.
    • safeModeNonRefundableStorageFee · BigInt<u64> · requiredAmount of non-refundable storage fee accumulated during safe mode.
    • safeModeStorageRebates · BigInt<u64> · requiredAmount of storage rebates accumulated (and not yet burned) during safe mode.
    • safeModeStorageRewards · BigInt<u64> · requiredAmount of storage rewards accumulated (and not yet distributed) during safe mode.
    • stakeSubsidyBalance · BigInt<u64> · requiredBalance of SUI set aside for stake subsidies that will be drawn down over time.
    • stakeSubsidyCurrentDistributionAmount · BigInt<u64> · requiredThe amount of stake subsidy to be drawn down per epoch. This amount decays and decreases over time.
    • stakeSubsidyDecreaseRate · integer (uint16) · requiredThe rate at which the distribution amount decays at the end of each period. Expressed in basis points.
    • stakeSubsidyDistributionCounter · BigInt<u64> · requiredThis counter may be different from the current epoch number if in some epochs we decide to skip the subsidy.
    • stakeSubsidyPeriodLength · BigInt<u64> · requiredNumber of distributions to occur before the distribution amount decays.
    • stakeSubsidyStartEpoch · BigInt<u64> · requiredThe starting epoch in which stake subsidies start being paid out
    • stakingPoolMappingsId · ObjectID · requiredID of the object that maps from staking pool's ID to the sui address of a validator.
    • stakingPoolMappingsSize · BigInt<u64> · requiredNumber of staking pool mappings.
    • storageFundNonRefundableBalance · BigInt<u64> · requiredThe non-refundable portion of the storage fund coming from storage reinvestment, non-refundable storage rebates and any leftover staking rewards.
    • storageFundTotalObjectStorageRebates · BigInt<u64> · requiredThe storage rebates of all the objects on-chain stored in the storage fund.
    • systemStateVersion · BigInt<u64> · requiredThe current version of the system state data structure type.
    • totalStake · BigInt<u64> · requiredTotal amount of stake from all active validators at the beginning of the epoch.
    • validatorCandidatesId · ObjectID · requiredID of the object that stores preactive validators, mapping their addresses to their Validator structs.
    • validatorCandidatesSize · BigInt<u64> · requiredNumber of preactive validators.
    • validatorLowStakeGracePeriod · BigInt<u64> · requiredA validator can have stake below validator_low_stake_threshold for this many epochs before being kicked out.
    • validatorLowStakeThreshold · BigInt<u64> · requiredValidators 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, SuiAddress[]][] · requiredA map storing the records of validator reporting each other.
    • validatorVeryLowStakeThreshold · BigInt<u64> · requiredValidators with stake below validator_very_low_stake_threshold will be removed immediately at epoch change, no grace period.

Example ​

Request ​

bash
curl https://mainnet-api.inodra.com/v1/jsonrpc \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getLatestSuiSystemState",
  "params": []
}'

Response ​

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "some_system_state"
}

The full-stack Sui data layer.