Skip to content

Grandpa pallet

Derived from live runtime metadata on TRN root (pallet index 12, captured 2026-05-02). For prose-style documentation see Grandpa on the curated reference side.

Pallet index
12
Calls
3
Events
3
Errors
7
Storage items
6
Constants
2

Calls (extrinsics)

Grandpa.report_equivocation

See [Pallet::report_equivocation].

ts
api.tx.grandpa.report_equivocation(equivocation_proof: {"setId":"u64","equivocation":"SpConsensusGrandpaEquivocation"}, key_owner_proof: {"session":"u32","trieNodes":"Vec<Bytes>","validatorCount":"u32"})
ArgumentTypeDoc
equivocation_proof{"setId":"u64","equivocation":"SpConsensusGrandpaEquivocation"}Box<EquivocationProof<T::Hash, BlockNumberFor<T>>>
key_owner_proof{"session":"u32","trieNodes":"Vec&lt;Bytes&gt;","validatorCount":"u32"}T::KeyOwnerProof

Call index: 0

Grandpa.report_equivocation_unsigned

See [Pallet::report_equivocation_unsigned].

ts
api.tx.grandpa.report_equivocation_unsigned(equivocation_proof: {"setId":"u64","equivocation":"SpConsensusGrandpaEquivocation"}, key_owner_proof: {"session":"u32","trieNodes":"Vec<Bytes>","validatorCount":"u32"})
ArgumentTypeDoc
equivocation_proof{"setId":"u64","equivocation":"SpConsensusGrandpaEquivocation"}Box<EquivocationProof<T::Hash, BlockNumberFor<T>>>
key_owner_proof{"session":"u32","trieNodes":"Vec&lt;Bytes&gt;","validatorCount":"u32"}T::KeyOwnerProof

Call index: 1

Grandpa.note_stalled

See [Pallet::note_stalled].

ts
api.tx.grandpa.note_stalled(delay: u32, best_finalized_block_number: u32)
ArgumentTypeDoc
delayu32BlockNumberFor<T>
best_finalized_block_numberu32BlockNumberFor<T>

Call index: 2

Events

Grandpa.NewAuthorities

New authority set has been applied.

FieldTypeDoc
authority_setVec&lt;(SpConsensusGrandpaAppPublic,u64)&gt;

Grandpa.Paused

Current authority set has been paused.

No payload.

Grandpa.Resumed

Current authority set has been resumed.

No payload.

Errors

Grandpa.PauseFailed

Attempt to signal GRANDPA pause when the authority set isn't live (either paused or already pending pause).

Grandpa.ResumeFailed

Attempt to signal GRANDPA resume when the authority set isn't paused (either live or already pending resume).

Grandpa.ChangePending

Attempt to signal GRANDPA change with one already pending.

Grandpa.TooSoon

Cannot signal forced change so soon after last.

Grandpa.InvalidKeyOwnershipProof

A key ownership proof provided as part of an equivocation report is invalid.

Grandpa.InvalidEquivocationProof

An equivocation proof provided as part of an equivocation report is invalid.

Grandpa.DuplicateOffenceReport

A given equivocation report is valid but already previously reported.

Storage

Grandpa.State

State of the current authority set.

ts
await api.query.grandpa.state()

Returns: {"_enum":{"Live":"Null","PendingPause":"{\"scheduledAt\":\"u32\",\"delay\":\"u32\"}","Paused":"Null","PendingResume":"{\"scheduledAt\":\"u32\",\"delay\":\"u32\"}"}}

Modifier: Default

Grandpa.PendingChange

Pending change: (signaled at, scheduled change).

ts
await api.query.grandpa.pendingChange()

Returns: {"scheduledAt":"u32","delay":"u32","nextAuthorities":"Vec<(SpConsensusGrandpaAppPublic,u64)>","forced":"Option<u32>"}

Modifier: Optional

Grandpa.NextForced

next block number where we can force a change.

ts
await api.query.grandpa.nextForced()

Returns: u32

Modifier: Optional

Grandpa.Stalled

true if we are currently stalled.

ts
await api.query.grandpa.stalled()

Returns: (u32,u32)

Modifier: Optional

Grandpa.CurrentSetId

The number of changes (both in terms of keys and underlying economic responsibilities) in the "set" of Grandpa validators from genesis.

ts
await api.query.grandpa.currentSetId()

Returns: u64

Modifier: Default

Grandpa.SetIdSession

A mapping from grandpa set ID to the index of the most recent session for which its members were responsible. This is only used for validating equivocation proofs. An equivocation proof must contains a key-ownership proof for a given session, therefore we need a way to tie together sessions and GRANDPA set ids, i.e. we need to validate that a validator was the owner of a given key on a given session, and what the active set ID was during that session. TWOX-NOTE: SetId is not under user control.

ts
await api.query.grandpa.setIdSession(key1)
  • Key: u64 (hasher: Twox64Concat)
  • Returns: u32

Modifier: Optional

Constants

Grandpa.MaxAuthorities

Max Authorities in use

Type: u32
SCALE-encoded value: 0x00100000

Grandpa.MaxSetIdSessionEntries

The maximum number of entries to keep in the set id to session index mapping. Since the SetIdSession map is only used for validating equivocations this value should relate to the bonding duration of whatever staking system is being used (if any). If equivocation handling is not enabled then this value can be zero.

Type: u64
SCALE-encoded value: 0xa800000000000000

Source: live chain metadata from wss://root.rootnet.live/archive/ws · captured 2026-05-02

Curated independently by Codeology. Source-attributed reference for The Root Network. Not affiliated with Futureverse / TRN Labs.