hyperlane

Implement Hyperlane cross-chain messaging, Warp Route token bridging, and custom ISM security configurations.

6|20|Updated Mar 14, 2026
One-click install
npx skills add https://github.com/andresdefi/cryptoskills --skill hyperlane-andresdefi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hyperlane
Source: https://github.com/andresdefi/cryptoskills/tree/main/skills/hyperlane
Command: npx skills add https://github.com/andresdefi/cryptoskills --skill hyperlane-andresdefi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? AI agents frequently produce incorrect Hyperlane integrations — confusing Warp Routes with generic bridges, mishandling bytes32 address padding, skipping interchain gas payment, or misunderstanding ISM security models — leading to stuck messages, failed deliveries, and insecure cross-chain contracts. ## Core Features & Use Cases - Cross-Chain Messaging: Dispatch and receive messages via the Mailbox contract with correct quoteDispatch fee payment, bytes32 address conversion, and IMessageRecipient handle() implementation. - Warp Route Token Bridging: Deploy collateral/synthetic Warp Routes and execute transferRemote bridging between chains like Ethereum and Arbitrum. - Custom ISM Security: Configure MultisigISM, RoutingISM, and AggregationISM via factory contracts for sovereign, composable message verification. - Interchain Accounts: Execute batched remote transactions on destination chains through deterministic ICA addresses. - Use Case: Bridge 1000 USDC from Ethereum to Arbitrum by approving the Warp Route collateral contract, quoting gas, and calling transferRemote — then track delivery via the Hyperlane Explorer. ## Quick Start Ask the agent to send a cross-chain message from Ethereum to Arbitrum using the Hyperlane Mailbox with proper gas quoting and recipient address padding.

Frequently Asked Questions about hyperlane

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send a cross-chain message with Hyperlane?

Call quoteDispatch() on the origin chain Mailbox to get the interchain gas fee, then call dispatch() with the destination domain ID, the recipient address left-padded to bytes32, and the message body, sending the quoted fee as msg.value. Delivery happens asynchronously when a relayer calls process() on the destination Mailbox.

How do I bridge ERC-20 tokens across chains using Hyperlane Warp Routes?

Approve the Warp Route collateral contract to spend your tokens, call quoteGasPayment() for the destination domain, then call transferRemote() with the destination domain, bytes32-padded recipient, and amount. The origin contract locks collateral and the destination contract mints synthetic tokens.

What is the difference between MultisigISM, RoutingISM, and AggregationISM?

MultisigISM verifies M-of-N validator signatures and suits most deployments. RoutingISM applies different ISMs per origin domain for varied trust assumptions. AggregationISM requires multiple sub-ISMs to pass, providing defense in depth for high-value operations.

Why is my Hyperlane message not delivered on the destination chain?

The most common cause is missing interchain gas payment — dispatch() without sufficient msg.value gives relayers no incentive to deliver. Also verify a relayer runs for the destination chain, the recipient contract exists, and the ISM verification will pass with the available validator signatures.

Can I deploy Hyperlane to a chain that is not officially supported?

Yes, Hyperlane is permissionless — you deploy the Mailbox, ISM, and ValidatorAnnounce contracts yourself using the Hyperlane CLI, then run your own validators and relayer. No governance vote or approval is required, unlike LayerZero or Wormhole.

Why does my handle() function reject valid Hyperlane messages?

The _sender parameter is bytes32, not address — EVM senders are left-padded with 12 zero bytes. Convert back using address(uint160(uint256(_sender))), and verify msg.sender equals the destination chain's Mailbox address, not the origin chain's.