Skip to main content

Validators

Validators are responsible for observing the Mailbox contract and, if required, signing a merkle root to faciliate message transmission to remote chains.

Unlike many other protocols, Hyperlane does not have an enshrined validator set. Anyone is free to run their own validator, as long as the receiver contract specifies a Multisig ISM that includes their validator.

info

Want to run a validator? Follow the validators guide.

For messages using a Multisig ISM, validators read the current merkle root by calling MerkleTreeHook.latestCheckpoint(). Once a root has achieved sufficient finality, validators are expected to sign it and post their signature to highly available storage so that it can be collected by a relayer.

/**
* @notice Returns the latest checkpoint for validators to sign.
* @return root Latest checkpointed root
* @return index Latest checkpointed index
*/
function latestCheckpoint()
external
view
returns (bytes32 root, uint256 index);

Validators that sign anything other than a finalized checkpoint risk compromising the safety of the protocol. If they are participating in proof of stake, this may result in their stake being slashed.

Hyperlane is developing the validator as a binary implemented in Rust that can be easily run by anyone. Operationally, validators need to run this binary and have access to an RPC provider or node for the chain that they are validating for. We hope that the majority of Hyperlane validators will come from each chain's existing node operator community.