LogoLogo
  • ⏩Introduction
    • Hyperlane Introduction
    • Getting started
    • Why Should You Use Hyperlane?
  • Permissionless Interoperability
    • Overview
    • Deploy Hyperlane
    • Warp Routes
      • Deploy a Warp Route
      • Deploy a UI for your Warp Route
    • Modular Rollup Interoperability
  • Build With Hyperlane
    • Quickstarts
      • Messaging
      • Accounts
      • Queries
      • hyperlane-quickstart repo
    • Guides
      • Finding my messages
      • Automatically pay for interchain gas
      • Manually pay for interchain gas
      • Choosing an interchain gas paymaster contract
      • Unit testing
      • Specifying an ISM
      • V2 migration guide
    • Explorer
      • Debugging messages
      • Configuring PI Chains
      • REST API
      • GraphQL API
    • Troubleshooting/Developer FAQ
    • Example apps
  • APIs and SDKs
    • Messaging API
      • Send
      • Receive
    • Accounts API
    • Queries API
    • Warp Route API
    • Interchain gas paymaster API
    • Hyperlane App Framework
      • Example usage
        • HelloWorld
        • Interchain Token
      • Solidity SDK
        • HyperlaneConnectionClient
        • Router
      • NodeJS SDK
        • RPC Providers
        • Deployment
        • Interchain testing
        • Quoting gas payments
        • App Abstraction
    • Hooks API
      • Contract addresses
  • Protocol
    • Overview
    • Mailbox
    • Interchain security modules
      • Interface
      • Multisig ISM
      • Routing ISM
      • Aggregation ISM
      • Optimistic ISM
      • Wormhole ISM
      • Hook ISM
      • CCIP-Read ISM
    • Interchain gas payments
    • Staking and slashing
    • Agents
      • Validators
      • Relayers
      • Watchtowers
    • Warp Routes
    • Implementation Guide
  • Operators
    • Validators
      • Guide
      • AWS setup
      • Monitoring and alerting
    • Relayers
      • Guide
      • Message filtering
    • Agent keys
      • Hexadecimal keys
      • AWS KMS keys
    • Agent configuration
      • Configuration reference
    • Running with docker compose
  • Resources
    • FAQ
    • Glossary
    • Contract addresses
      • Permissionless Deployment Contract Addresses
    • Domain identifiers
      • Permissionless Domain Identifiers
    • Default ISM settings
    • Coming Soon: Hyperlane v3
    • Token sources & faucets
    • Latencies
    • Github
    • Discord
    • Website
Powered by GitBook
On this page
  1. Build With Hyperlane
  2. Explorer

Configuring PI Chains

Using a Permissionless Interoperability chain in the Explorer

PreviousDebugging messagesNextREST API

Last updated 2 years ago

Hyperlane can be to any chain, but messages on PI chains cannot be identified by the default Hyperlane agents. To view details about messages from PI chains, first configure the explorer with metadata about that chain.

To begin, go to the . From there, click the Add Custom Chain button.

A modal will appear. Input the configuration for your PI Chain. The chain config schema is an extension of the Hyperlane SDK's but with a contracts object added. Currently only the mailbox contract address is required but more functionality may be enabled in the future if more addresses are provided.

If a valid Etherscan-based block explorer config is provided, the Hyperlane Explorer will utilize it to find the desired messages. If not, it will use the RPC URL. Note, Explorers with api keys (even just free-tier keys), perform faster and more reliably.

Chain Config Examples

A minimal chain config:

{
  "chainId": 12345,
  "name": "myChain",
  "publicRpcUrls": [{ "http": "https://myRpcUrl.com" }],
  "contracts": {
    "mailbox": "0x12345..."
  }
}

A chain config with a block explorer and block timings included:

{
  "chainId": 12345,
  "name": "myChain",
  "publicRpcUrls": [{ "http": "https://myRpcUrl.com" }],
  "blockExplorers": [ {
      "name": "MyScan",
      "url": "https://myScanExplorer.com",
      "apiUrl": "https://api-myScanExplorer.com/api"
  } ],
  "blocks": { "confirmations": 1, "estimateBlockTime": 10 },
  "contracts": {
    "mailbox": "0x12345..."
  }
}

If the origin or destination domainId of chains in your messages doesn't match their chainId then you must include the domainId field in your chain config.

permissionlessly deployed
explorer's settings page
ChainMetadata schema