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.