Epoch
Operation of the IOTA 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: UInt53!
referenceGasPrice: BigInt
validatorSet: ValidatorSet
startTimestamp: DateTime!
endTimestamp: DateTime
totalCheckpoints: UInt53
totalTransactions: UInt53
totalGasFees: BigInt
totalStakeRewards: BigInt
fundSize: BigInt
netInflow: BigInt
fundInflow: BigInt
fundOutflow: BigInt
protocolConfigs: ProtocolConfigs!
storageFund: StorageFund
safeMode: SafeMode
systemStateVersion: UInt53
iotaTotalSupply: Int
iotaTreasuryCapId: IotaAddress
systemParameters: SystemParameters
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
● UInt53!
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
● UInt53
scalar
The total number of checkpoints in this epoch.
Epoch.totalTransactions
● UInt53
scalar
The total number of transaction blocks in this epoch.
Epoch.totalGasFees
● BigInt
scalar
The total amount of gas fees (in NANOS) that were paid in this epoch.
Epoch.totalStakeRewards
● BigInt
scalar
The total NANOS rewarded as stake.
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
IOTA 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
● UInt53
scalar
The value of the version
field of 0x5
, the
0x3::iota::IotaSystemState
object. This version changes whenever
the fields contained in the system state object (held in a dynamic
field attached to 0x5
) change.
Epoch.iotaTotalSupply
● Int
scalar
The total IOTA supply.
Epoch.iotaTreasuryCapId
● IotaAddress
scalar
The treasury-cap id.
Epoch.systemParameters
● SystemParameters
object
Details of the system that are decided during genesis.
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.