Skip to main content

Epoch

Operation of the Sui network is temporally partitioned into non-overlapping epochs, and the network aims to keep epochs roughly the same duration as each other. During a particular epoch the following data is fixed:

  • the protocol version
  • the reference gas price
  • the set of participating validators
type Epoch {
epochId: Int!
referenceGasPrice: BigInt
validatorSet: ValidatorSet
startTimestamp: DateTime!
endTimestamp: DateTime
totalCheckpoints: BigInt
totalTransactions: Int
totalGasFees: BigInt
totalStakeRewards: BigInt
totalStakeSubsidies: BigInt
fundSize: BigInt
netInflow: BigInt
fundInflow: BigInt
fundOutflow: BigInt
protocolConfigs: ProtocolConfigs!
storageFund: StorageFund
safeMode: SafeMode
systemStateVersion: Int
systemParameters: SystemParameters
systemStakeSubsidy: StakeSubsidy
liveObjectSetDigest: String
checkpoints(
first: Int
after: String
last: Int
before: String
): CheckpointConnection!
transactionBlocks(
first: Int
after: String
last: Int
before: String
filter: TransactionBlockFilter
): TransactionBlockConnection!
}

Fields

Epoch.epochId ● Int! non-null scalar

The epoch's id as a sequence number that starts at 0 and is incremented by one at every epoch change.

Epoch.referenceGasPrice ● BigInt scalar

The minimum gas price that a quorum of validators are guaranteed to sign a transaction for.

Epoch.validatorSet ● ValidatorSet object

Validator related properties, including the active validators.

Epoch.startTimestamp ● DateTime! non-null scalar

The epoch's starting timestamp.

Epoch.endTimestamp ● DateTime scalar

The epoch's ending timestamp.

Epoch.totalCheckpoints ● BigInt scalar

The total number of checkpoints in this epoch.

Epoch.totalTransactions ● Int scalar

The total number of transaction blocks in this epoch.

Epoch.totalGasFees ● BigInt scalar

The total amount of gas fees (in MIST) that were paid in this epoch.

Epoch.totalStakeRewards ● BigInt scalar

The total MIST rewarded as stake.

Epoch.totalStakeSubsidies ● BigInt scalar

The amount added to total gas fees to make up the total stake rewards.

Epoch.fundSize ● BigInt scalar

The storage fund available in this epoch. This fund is used to redistribute storage fees from past transactions to future validators.

Epoch.netInflow ● BigInt scalar

The difference between the fund inflow and outflow, representing the net amount of storage fees accumulated in this epoch.

Epoch.fundInflow ● BigInt scalar

The storage fees paid for transactions executed during the epoch.

Epoch.fundOutflow ● BigInt scalar

The storage fee rebates paid to users who deleted the data associated with past transactions.

Epoch.protocolConfigs ● ProtocolConfigs! non-null object

The epoch's corresponding protocol configuration, including the feature flags and the configuration options.

Epoch.storageFund ● StorageFund object

SUI set aside to account for objects stored on-chain, at the start of the epoch. This is also used for storage rebates.

Epoch.safeMode ● SafeMode object

Information about whether this epoch was started in safe mode, which happens if the full epoch change logic fails for some reason.

Epoch.systemStateVersion ● Int scalar

The value of the version field of 0x5, the 0x3::sui::SuiSystemState object. This version changes whenever the fields contained in the system state object (held in a dynamic field attached to 0x5) change.

Epoch.systemParameters ● SystemParameters object

Details of the system that are decided during genesis.

Epoch.systemStakeSubsidy ● StakeSubsidy object

Parameters related to the subsidy that supplements staking rewards

Epoch.liveObjectSetDigest ● String scalar

A commitment by the committee at the end of epoch on the contents of the live object set at that time. This can be used to verify state snapshots.

Epoch.checkpoints ● CheckpointConnection! non-null object

The epoch's corresponding checkpoints.

Epoch.checkpoints.first ● Int scalar
Epoch.checkpoints.after ● String scalar
Epoch.checkpoints.last ● Int scalar
Epoch.checkpoints.before ● String scalar

Epoch.transactionBlocks ● TransactionBlockConnection! non-null object

The epoch's corresponding transaction blocks.

Epoch.transactionBlocks.first ● Int scalar
Epoch.transactionBlocks.after ● String scalar
Epoch.transactionBlocks.last ● Int scalar
Epoch.transactionBlocks.before ● String scalar
Epoch.transactionBlocks.filter ● TransactionBlockFilter input

Returned By

epoch query

Member Of

ActiveJwk object ● AuthenticatorStateExpireTransaction object ● AuthenticatorStateUpdateTransaction object ● ChangeEpochTransaction object ● Checkpoint object ● ConsensusCommitPrologueTransaction object ● RandomnessStateUpdateTransaction object ● StakedSui object ● TransactionBlock object ● TransactionBlockEffects object