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].
api.tx.imOnline.heartbeat(heartbeat: {"blockNumber":"u32","sessionIndex":"u32","authorityIndex":"u32","validatorsLen":"u32"}, signature: [u8;64])| Argument | Type | Doc |
|---|---|---|
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.
| Field | Type | Doc |
|---|---|---|
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.
| Field | Type | Doc |
|---|---|---|
offline | Vec<(SeedPrimitivesSignatureAccountId20,PalletStakingExposure)> |
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 forHeartbeatAfter.
await api.query.imOnline.heartbeatAfter()Returns: u32
Modifier: Default
ImOnline.Keys
The current set of keys that may issue a heartbeat.
await api.query.imOnline.keys()Returns: Vec<PalletImOnlineSr25519AppSr25519Public>
Modifier: Default
ImOnline.ReceivedHeartbeats
For each session index, we keep a mapping of
SessionIndexandAuthIndex.
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<T>to the number of blocks authored by the given authority.
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
wss://root.rootnet.live/archive/ws · captured 2026-05-02