This is the JSON-RPC type for the SUI system state object. It flattens all fields to make them top-level fields such that it as minimum dependencies to the internal data structures of the SUI system state type.

interface SuiSystemStateSummary {
    activeValidators: SuiValidatorSummary[];
    atRiskValidators: [string, string][];
    epoch: string;
    epochDurationMs: string;
    epochStartTimestampMs: string;
    inactivePoolsId: string;
    inactivePoolsSize: string;
    maxValidatorCount: string;
    minValidatorJoiningStake: string;
    pendingActiveValidatorsId: string;
    pendingActiveValidatorsSize: string;
    pendingRemovals: string[];
    protocolVersion: string;
    referenceGasPrice: string;
    safeMode: boolean;
    safeModeComputationRewards: string;
    safeModeNonRefundableStorageFee: string;
    safeModeStorageRebates: string;
    safeModeStorageRewards: string;
    stakeSubsidyBalance: string;
    stakeSubsidyCurrentDistributionAmount: string;
    stakeSubsidyDecreaseRate: number;
    stakeSubsidyDistributionCounter: string;
    stakeSubsidyPeriodLength: string;
    stakeSubsidyStartEpoch: string;
    stakingPoolMappingsId: string;
    stakingPoolMappingsSize: string;
    storageFundNonRefundableBalance: string;
    storageFundTotalObjectStorageRebates: string;
    systemStateVersion: string;
    totalStake: string;
    validatorCandidatesId: string;
    validatorCandidatesSize: string;
    validatorLowStakeGracePeriod: string;
    validatorLowStakeThreshold: string;
    validatorReportRecords: [string, string[]][];
    validatorVeryLowStakeThreshold: string;
}

Properties

activeValidators: SuiValidatorSummary[]

The list of active validators in the current epoch.

atRiskValidators: [string, string][]

Map storing the number of epochs for which each validator has been below the low stake threshold.

epoch: string

The current epoch ID, starting from 0.

epochDurationMs: string

The duration of an epoch, in milliseconds.

epochStartTimestampMs: string

Unix timestamp of the current epoch start

inactivePoolsId: string

ID of the object that maps from a staking pool ID to the inactive validator that has that pool as its staking pool.

inactivePoolsSize: string

Number of inactive staking pools.

maxValidatorCount: string

Maximum number of active validators at any moment. We do not allow the number of validators in any epoch to go above this.

minValidatorJoiningStake: string

Lower-bound on the amount of stake required to become a validator.

pendingActiveValidatorsId: string

ID of the object that contains the list of new validators that will join at the end of the epoch.

pendingActiveValidatorsSize: string

Number of new validators that will join at the end of the epoch.

pendingRemovals: string[]

Removal requests from the validators. Each element is an index pointing to active_validators.

protocolVersion: string

The current protocol version, starting from 1.

referenceGasPrice: string

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: string

Amount of computation rewards accumulated (and not yet distributed) during safe mode.

safeModeNonRefundableStorageFee: string

Amount of non-refundable storage fee accumulated during safe mode.

safeModeStorageRebates: string

Amount of storage rebates accumulated (and not yet burned) during safe mode.

safeModeStorageRewards: string

Amount of storage rewards accumulated (and not yet distributed) during safe mode.

stakeSubsidyBalance: string

Balance of SUI set aside for stake subsidies that will be drawn down over time.

stakeSubsidyCurrentDistributionAmount: string

The amount of stake subsidy to be drawn down per epoch. This amount decays and decreases over time.

stakeSubsidyDecreaseRate: number

The rate at which the distribution amount decays at the end of each period. Expressed in basis points.

stakeSubsidyDistributionCounter: string

This counter may be different from the current epoch number if in some epochs we decide to skip the subsidy.

stakeSubsidyPeriodLength: string

Number of distributions to occur before the distribution amount decays.

stakeSubsidyStartEpoch: string

The starting epoch in which stake subsidies start being paid out

stakingPoolMappingsId: string

ID of the object that maps from staking pool's ID to the sui address of a validator.

stakingPoolMappingsSize: string

Number of staking pool mappings.

storageFundNonRefundableBalance: string

The non-refundable portion of the storage fund coming from storage reinvestment, non-refundable storage rebates and any leftover staking rewards.

storageFundTotalObjectStorageRebates: string

The storage rebates of all the objects on-chain stored in the storage fund.

systemStateVersion: string

The current version of the system state data structure type.

totalStake: string

Total amount of stake from all active validators at the beginning of the epoch.

validatorCandidatesId: string

ID of the object that stores preactive validators, mapping their addresses to their Validator structs.

validatorCandidatesSize: string

Number of preactive validators.

validatorLowStakeGracePeriod: string

A validator can have stake below validator_low_stake_threshold for this many epochs before being kicked out.

validatorLowStakeThreshold: string

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: [string, string[]][]

A map storing the records of validator reporting each other.

validatorVeryLowStakeThreshold: string

Validators with stake below validator_very_low_stake_threshold will be removed immediately at epoch change, no grace period.