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
scanLimit: Int
): 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 of0x5
, the0x3::sui::SuiSystemState
object. This version changes whenever the fields contained in the system state object (held in a dynamic field attached to0x5
) 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.
scanLimit
restricts the number of candidate transactions scanned when gathering a page of results. It is required for queries that apply more than two complex filters (on function, kind, sender, recipient, input object, changed object, or ids), and can be at mostserviceConfig.maxScanLimit
.When the scan limit is reached the page will be returned even if it has fewer than
first
results when paginating forward (last
when paginating backwards). If there are more transactions to scan,pageInfo.hasNextPage
(orpageInfo.hasPreviousPage
) will be set totrue
, andPageInfo.endCursor
(orPageInfo.startCursor
) will be set to the last transaction that was scanned as opposed to the last (or first) transaction in the page.Requesting the next (or previous) page after this cursor will resume the search, scanning the next
scanLimit
many transactions in the direction of pagination, and so on until all transactions in the scanning range have been visited.By default, the scanning range includes all transactions known to GraphQL, but it can be restricted by the
after
andbefore
cursors, and thebeforeCheckpoint
,afterCheckpoint
andatCheckpoint
filters.
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
Epoch.transactionBlocks.scanLimit
● Int
scalar
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