AltLayer Documentation
  • 👋Welcome
    • Overview
  • Restaked Rollups
    • VITAL for Decentralised Verification
      • Tier-1 Finality
      • Tier-2 Finality
      • Tier-3 Finality
    • MACH for Faster Finality
      • Interoperability via MACH
    • SQUAD for Decentralised Sequencing
    • Staking of dApp Token
  • Wizard
    • Introduction
    • Technical overview
    • Create AVS
    • Manage AVS
    • Operator management
    • Hosted operator API (BLS based)
    • Custom AVS specification
      • Constructor specification requirements
      • Import Externally-Deployed AVS
    • Report bug or submit a feature request
  • Autonome
    • Deploy AI Agent
    • Autonome API guide
    • Uploading your own agent framework
    • Twitter/X login troubleshooting guide
  • ♾️AltLayer-Facilitated Actively Validated Services
    • Overview
    • AltLayer MACH AVS
      • Operator Guide
      • User Delegation Guide
    • Cyber MACH AVS for Cyber L2
      • Operator Guide
      • User Delegation Guide
    • DODOchain MACH AVS for DODO Chain
      • Operator Guide
      • User Delegation Guide
    • Fast Finality Layer for Soneium
      • Operator Guide
      • User Delegation Guide
    • Xterio MACH AVS for Xterio Chain
      • Operator Guide
      • User Delegation Guide
  • Upgrade Guide
  • 🥩ALT Restaking
    • Staking Info & Parameters
    • Restake ALT
    • Delegating reALT
    • Check and Claim Staking Rewards
    • Unstake ALT
    • Migration from Xterio (Legacy) ALT Pool to Xterio Restaked ALT Pool
    • Testnet reALT faucet
  • Rollup-as-a-Service
    • What is Rollup-as-a-Service (RaaS)?
    • AltLayer's RaaS Offering
    • RaaS Onboarding Guide
      • Optimism Rollup FAQ
      • Arbitrum Rollup FAQ
    • AltLayer Ecosystem
    • Clients in the Spotlight
    • Pricing Model
  • External Integrations
    • Account Abstraction using Biconomy
    • Enabling permissionless interoperability on AltLayer Rollup with Hyperlane
      • Deplying Hyperlane Warp Routes for ERC20 Token Bridging
      • Running Off-chain Agents
      • Setting up the bridging UI
    • Cross-chain Interoperability using Celer
      • Fungible Token Bridging
      • Non-fungible Token Bridging
      • Generic Message Passing
      • cBridge SDK
  • AltLayer's In-House Rollup Stack in Depth
    • How does AltLayer's in-house rollup stack work?
    • Decentralized Sequencer Set
    • Security via Fraud Proof
  • Rollup Types
    • Flash Layer Rollups
      • Example Use cases
        • NFT Mint Events
        • Games
        • Event Ticketing
    • Persistent Rollups
  • Core Features of AltLayer's In-House Rollup Stack
    • Modular
    • Elastic
    • Multi-VM Support
    • Fraud Proofs
    • Decentralized Sequencers
    • Tiered-Finality
  • FlashLayer Showcase
    • AltLayer's POAP NFTs Collection Mint
      • Performance Test in the Wild
    • Dark Forest Community Round
    • Oh Ottie! NFT Collection Mint
    • Dark Forest Community Round for Jump Crypto's Pit Event
    • Ottie 2048
    • Other demos
      • Fraud Proof Demo
      • Flash Layer Demo
      • Rollup Launchpad Demo
      • FlashGPT Demo
  • Implementation Status
    • Roadmap
    • Development Status
  • Community & Support
    • Community
    • Support
Powered by GitBook
On this page
  1. External Integrations
  2. Enabling permissionless interoperability on AltLayer Rollup with Hyperlane

Running Off-chain Agents

PreviousDeplying Hyperlane Warp Routes for ERC20 Token BridgingNextSetting up the bridging UI

Last updated 1 year ago

This follow is meant for local setup. For production environment, please refer to

Clone repository and run cd rust.

1. Validator

Create rust/config/validator.env

CONFIG_FILES=./config/agent_config.json
HYP_BASE_CHAINS_SEPOLIA_CONNECTION_URL=https://eth-sepolia.g.alchemy.com/v2/apikey
HYP_BASE_ORIGINCHAINNAME=sepolia
HYP_BASE_REORGPERIOD=20
HYP_BASE_VALIDATOR_TYPE=hexKey
HYP_BASE_VALIDATOR_KEY=<validator private key>
HYP_BASE_CHECKPOINTSYNCER_TYPE=localStorage
HYP_BASE_CHECKPOINTSYNCER_PATH=/tmp/hyperlane-validator-signatures-ethereum

Compile the validator by running

Compile: cargo build --release --bin validator

Run the validator using the following

env $(cat ./config/validator.env | grep -v "#" | xargs) ./target/release/validator

It will generate the announcement json at /tmp/hyperlane-validator-signatures-ethereum/announcement.json

{
  "value": {
    "validator": "0x7c19f05db313d89dea09781df2c076ec1132c423",
    "mailbox_address": "0x000000000000000000000000d51a3fbac4424a2a0c330686020341fd70adc9c5",
    "mailbox_domain": 11155111,
    "storage_location": "file:///tmp/hyperlane-validator-signatures-ethereum"
  },
  "signature": {
    "r": "0x54b9657e0eafd1abd49ce5f101079110cbd370091efc333ec908580b121c285c",
    "s": "0x35b288738187df1e921842ab55c12fef0cc1c8c3e5555899c2086ceb61cbe747",
    "v": 27
  },
  "serialized_signature": "0x54b9657e0eafd1abd49ce5f101079110cbd370091efc333ec908580b121c285c35b288738187df1e921842ab55c12fef0cc1c8c3e5555899c2086ceb61cbe7471b"
}

To announce the validator, run this command:

cast send <validator announcement contract> "announce(address, string calldata, bytes calldata)(bool)" <validator address> "file:///tmp/hyperlane-validator-signatures-ethereum" <serialiszed signature> --rpc-url https://eth-sepolia.g.alchemy.com/v2/apikey --private-key <deployer private key>
  1. Relayer

Create rust/config/relayer.env

CONFIG_FILES=./config/agent_config.json
HYP_BASE_CHAINS_SEPOLIA_CONNECTION_URL=https://eth-sepolia.g.alchemy.com/v2/apikey
HYP_BASE_CHAINS_TESTNET_CONNECTION_URL=https://testnet-rollup-api.altlayer.io
HYP_BASE_ORIGINCHAINNAME=sepolia
HYP_BASE_DESTINATIONCHAINNAMES=testnet
HYP_BASE_REORGPERIOD=20
HYP_BASE_DEFAULTSIGNER_TYPE=hexKey
HYP_BASE_DEFAULTSIGNER_KEY=<relayer private key>
HYP_BASE_ALLOWLOCALCHECKPOINTSYNCERS=true
https://docs.hyperlane.xyz/docs/protocol/agents
hyperlane-monorepo