This is the JSON-RPC type for the SUI validator. It flattens all inner structures to top-level fields so that they are decoupled from the internal definitions.

interface SuiValidatorSummary {
    commissionRate: string;
    description: string;
    exchangeRatesId: string;
    exchangeRatesSize: string;
    gasPrice: string;
    imageUrl: string;
    name: string;
    netAddress: string;
    networkPubkeyBytes: string;
    nextEpochCommissionRate: string;
    nextEpochGasPrice: string;
    nextEpochNetAddress?: null | string;
    nextEpochNetworkPubkeyBytes?: null | string;
    nextEpochP2pAddress?: null | string;
    nextEpochPrimaryAddress?: null | string;
    nextEpochProofOfPossession?: null | string;
    nextEpochProtocolPubkeyBytes?: null | string;
    nextEpochStake: string;
    nextEpochWorkerAddress?: null | string;
    nextEpochWorkerPubkeyBytes?: null | string;
    operationCapId: string;
    p2pAddress: string;
    pendingPoolTokenWithdraw: string;
    pendingStake: string;
    pendingTotalSuiWithdraw: string;
    poolTokenBalance: string;
    primaryAddress: string;
    projectUrl: string;
    proofOfPossessionBytes: string;
    protocolPubkeyBytes: string;
    rewardsPool: string;
    stakingPoolActivationEpoch?: null | string;
    stakingPoolDeactivationEpoch?: null | string;
    stakingPoolId: string;
    stakingPoolSuiBalance: string;
    suiAddress: string;
    votingPower: string;
    workerAddress: string;
    workerPubkeyBytes: string;
}

Properties

commissionRate: string
description: string
exchangeRatesId: string

ID of the exchange rate table object.

exchangeRatesSize: string

Number of exchange rates in the table.

gasPrice: string
imageUrl: string
name: string
netAddress: string
networkPubkeyBytes: string
nextEpochCommissionRate: string
nextEpochGasPrice: string
nextEpochNetAddress?: null | string
nextEpochNetworkPubkeyBytes?: null | string
nextEpochP2pAddress?: null | string
nextEpochPrimaryAddress?: null | string
nextEpochProofOfPossession?: null | string
nextEpochProtocolPubkeyBytes?: null | string
nextEpochStake: string
nextEpochWorkerAddress?: null | string
nextEpochWorkerPubkeyBytes?: null | string
operationCapId: string
p2pAddress: string
pendingPoolTokenWithdraw: string

Pending pool token withdrawn during the current epoch, emptied at epoch boundaries.

pendingStake: string

Pending stake amount for this epoch.

pendingTotalSuiWithdraw: string

Pending stake withdrawn during the current epoch, emptied at epoch boundaries.

poolTokenBalance: string

Total number of pool tokens issued by the pool.

primaryAddress: string
projectUrl: string
proofOfPossessionBytes: string
protocolPubkeyBytes: string
rewardsPool: string

The epoch stake rewards will be added here at the end of each epoch.

stakingPoolActivationEpoch?: null | string

The epoch at which this pool became active.

stakingPoolDeactivationEpoch?: null | string

The epoch at which this staking pool ceased to be active. None = {pre-active, active},

stakingPoolId: string

ID of the staking pool object.

stakingPoolSuiBalance: string

The total number of SUI tokens in this pool.

suiAddress: string
votingPower: string
workerAddress: string
workerPubkeyBytes: string