This runbook provides guidelines for the Celestia team on how to use and operate the Hyperlane Cosmos SDK Implementation.

Table of Contents

General

Information and implementation are available at the locations listed below. Together with this runbook, these resources should contain all information needed to operate the Hyperlane bridge.

Hyperlane Registry
Module Implementation
CLI Tooling
Documentation https://docs.hyperlane.xyz/
Nexus UI https://nexus.hyperlane.xyz/

Invariants for Production

All components that safeguard bridge balances and user funds must be owned by a Celestia Foundation multisig.

Setup

Follow the install instructions to setup the Hyperlane CLI:

https://docs.hyperlane.xyz/docs/reference/developer-tools/cli

npm install -g @hyperlane-xyz/cli
hyperlane --version # > 19.9.0

Make sure to have a deployer key with some funds for Celestia and other chains.

To update configurations, you'll need to make changes to the registry.

git checkout <https://github.com/hyperlane-xyz/hyperlane-registry>
cd hyperlane-registry

Core Deployment

  1. Create a metadata.yaml file in the registry: https://github.com/hyperlane-xyz/hyperlane-registry/blob/main/chains/celestia/metadata.yaml
    1. Alternative: Write it to ~/.hyperlane/chains/<chain-name>/metadata.yaml
  2. Create a core-config.yaml:
defaultHook:
  beneficiary: <Celestia address> -> permissions to claim IGP
  oracleConfig:
    celestia:
      gasPrice: "200"
      tokenDecimals: 6
      tokenExchangeRate: "10000"
  oracleKey: <Celestia address> -> owner of the IGP
  overhead:
    celestia: 50000
  owner: <Celestia address> -> owner of the IGP
  type: interchainGasPaymaster
defaultIsm:
  threshold: 2
  type: messageIdMultisigIsm
  validators:
    - "0x9D9C3a9EB900c3c1de4F3E4EBfBee138E6Fd0ff7"
owner: <Celestia address> -> owner of the mailbox
requiredHook:
  type: merkleTreeHook

<aside> 💡

To get an idea how a core-config.yaml looks like in production, try the core read command ⬇️.

</aside>