Heimdall is the backbone of Shibarium’s validator and state management, built on a customized Cosmos-SDK and a forked Tendermint (Peppermint). It manages validators, block producer selection, spans, state sync between Ethereum and Shibarium, and more.

Architecture Overview

  • Manages Validators: Handles validator set, power, and selection.
  • Span & Producer Selection: Allocates slots and shuffles for fair, weighted block producer selection.
  • State Sync: Relays and commits state between Ethereum and Shibarium.
  • Governance: Parameter changes and voting via on-chain proposals.
Diagram showing Heimdall as the validator/state management layer between Ethereum and Bor.

Heimdall's role in Shibarium PoS architecture

Validator & Producer Selection

1

Slot Allocation Shibd on Validator Power

Each validator receives slots proportional to their power (e.g., power 10 = 10 slots). Higher power = higher chance of selection.
2

Shuffling & Selection

Slots are shuffled using a seed from the Ethereum block hash for each span. The first producerCount are selected as block producers using the Ethereum 2.0 shuffle algorithm.

Messages & Types

CLI Commands

REST APIs

NameMethodEndpoint
Span detailsGET/bor/span/span-id
Get latest spanGET/bor/latest-span
Get paramsGET/bor/params
Chain paramsGETchainmanager/params
All proposalsGET/gov/proposals
Proposal detailGET/gov/proposals/
Proposal votesGET/gov/proposals//votes

Governance Overview

  • Proposal Submission: Validators submit proposals with a deposit. If the deposit threshold is met, voting begins.
  • Voting: Validators vote on proposals. Each BONE token = 1 vote.
  • Tallying: After the voting period, votes are tallied based on quorum, threshold, and veto parameters.
  • Param Change Proposals: Used to update Heimdall module parameters (e.g., tx fees).