Skip to main content


Constants that control how the chain operates.

These can only change during protocol upgrades which happen on epoch boundaries.

type ProtocolConfigs {
protocolVersion: Int!
featureFlags: [ProtocolConfigFeatureFlag!]!
configs: [ProtocolConfigAttr!]!
key: String!
): ProtocolConfigAttr
key: String!
): ProtocolConfigFeatureFlag


ProtocolConfigs.protocolVersion ● Int! non-null scalar

The protocol is not required to change on every epoch boundary, so the protocol version tracks which change to the protocol these configs are from.

ProtocolConfigs.featureFlags ● [ProtocolConfigFeatureFlag!]! non-null object

List all available feature flags and their values. Feature flags are a form of boolean configuration that are usually used to gate features while they are in development. Once a flag has been enabled, it is rare for it to be disabled.

ProtocolConfigs.configs ● [ProtocolConfigAttr!]! non-null object

List all available configurations and their values. These configurations can take any value (but they will all be represented in string form), and do not include feature flags.

ProtocolConfigs.config ● ProtocolConfigAttr object

Query for the value of the configuration with name key.

ProtocolConfigs.config.key ● String! non-null scalar

ProtocolConfigs.featureFlag ● ProtocolConfigFeatureFlag object

Query for the state of the feature flag with name key.

ProtocolConfigs.featureFlag.key ● String! non-null scalar

Returned By

protocolConfig query

Member Of

Epoch object