Skip to content

ImOnline pallet ​

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

Pallet index
13
Calls
1
Events
3
Errors
2
Storage items
4
Constants
1

Calls (extrinsics) ​

ImOnline.heartbeat ​

See [Pallet::heartbeat].

ts
api.tx.imOnline.heartbeat(heartbeat: {"blockNumber":"u32","sessionIndex":"u32","authorityIndex":"u32","validatorsLen":"u32"}, signature: [u8;64])
ArgumentTypeDoc
heartbeat{"blockNumber":"u32","sessionIndex":"u32","authorityIndex":"u32","validatorsLen":"u32"}Heartbeat<BlockNumberFor<T>>
signature[u8;64]<T::AuthorityId as RuntimeAppPublic>::Signature

Call index: 0

Events ​

ImOnline.HeartbeatReceived ​

A new heartbeat was received from AuthorityId.

FieldTypeDoc
authority_id[u8;32]

ImOnline.AllGood ​

At the end of the session, no offence was committed.

No payload.

ImOnline.SomeOffline ​

At the end of the session, at least one validator was found to be offline.

FieldTypeDoc
offlineVec&lt;(SeedPrimitivesSignatureAccountId20,PalletStakingExposure)&gt;

Errors ​

ImOnline.InvalidKey ​

Non existent public key.

ImOnline.DuplicatedHeartbeat ​

Duplicated heartbeat.

Storage ​

ImOnline.HeartbeatAfter ​

The block number after which it's ok to send heartbeats in the current session. At the beginning of each session we set this to a value that should fall roughly in the middle of the session duration. The idea is to first wait for the validators to produce a block in the current session, so that the heartbeat later on will not be necessary. This value will only be used as a fallback if we fail to get a proper session progress estimate from NextSessionRotation, as those estimates should be more accurate then the value we calculate for HeartbeatAfter.

ts
await api.query.imOnline.heartbeatAfter()

Returns: u32

Modifier: Default

ImOnline.Keys ​

The current set of keys that may issue a heartbeat.

ts
await api.query.imOnline.keys()

Returns: Vec<PalletImOnlineSr25519AppSr25519Public>

Modifier: Default

ImOnline.ReceivedHeartbeats ​

For each session index, we keep a mapping of SessionIndex and AuthIndex.

ts
await api.query.imOnline.receivedHeartbeats(key1, key2)
  • Key: (u32,u32) (hashers: Twox64Concat, Twox64Concat)
  • Returns: bool

Modifier: Optional

ImOnline.AuthoredBlocks ​

For each session index, we keep a mapping of ValidatorId&lt;T&gt; to the number of blocks authored by the given authority.

ts
await api.query.imOnline.authoredBlocks(key1, key2)
  • Key: (u32,SeedPrimitivesSignatureAccountId20) (hashers: Twox64Concat, Twox64Concat)
  • Returns: u32

Modifier: Default

Constants ​

ImOnline.UnsignedPriority ​

A configuration for base priority of unsigned transactions. This is exposed so that it can be tuned for particular runtime, when multiple pallets send unsigned transactions.

Type: u64
SCALE-encoded value: 0xffffffffffffffff

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.