一键导入
self-relay-hyperlane-message
Uses the Hyperlane CLI to manually deliver (self-relay) a message between chains that are Ethereum protocol type.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Uses the Hyperlane CLI to manually deliver (self-relay) a message between chains that are Ethereum protocol type.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Update standing fee quotes for the CROSS/moonpay warp route. Use when asked to set, update, or change fees/bps for specific chains, tokens, or directions in the MoonPay route. Also use when asked to show or read current standing quotes.
Encode and decode raw Hyperlane messages to/from packed hex bytes using the CLI. Use when you need to construct a message for testing, inspect a raw message from logs or a transaction, or decode a warp transfer body.
Helper skill for using Hyperlane CLI address conversion utilities (addressToBytes32 and bytes32ToAddress) for cross-chain message formatting
A skill that allows a user to validate that a warp route deployment will be in the expected state after applying some configuration
Simulate pending Safe (multisig) governance txs for a warp route by replaying the literal calldata onto anvil forks, self-relaying any ICA messages, then running warp check against the desired registry config. Use to verify that a not-yet-signed Safe batch produces the intended warp route config before signing.
Add a new chain to an existing warp route owned by a customer. Reads a Linear ticket, adds the new chain to the deploy.yaml, builds a customer-specific strategy file for existing chains, runs warp apply, and outputs transaction files for the customer to sign via their multisig.
| name | self-relay-hyperlane-message |
| description | Uses the Hyperlane CLI to manually deliver (self-relay) a message between chains that are Ethereum protocol type. |
Manually deliver a Hyperlane message using the CLI's status --relay command.
| Parameter | Required | Default | Description |
|---|---|---|---|
origin_chain | No | Derived from Explorer API | Name of the origin chain (auto-derived if not provided) |
dispatch_tx | No* | - | Transaction hash of the dispatch (when message was sent) |
message_id | No* | - | The Hyperlane message ID (alternative to dispatch_tx) |
registry_path | No | CLI default | Path to a local registry (overridden if private_rpcs is true) |
key | No | $(HYPERLANE_MONOREPO=$(git rev-parse --show-toplevel) hypkey) | Private key for signing the relay transaction |
private_rpcs | No | true | If true, use private RPCs via local http-registry |
* Either dispatch_tx OR message_id must be provided, but not both.
The working directory may not be the monorepo root. Find it by looking for CLAUDE.md or package.json with "name": "hyperlane-monorepo":
git rev-parse --show-toplevel
Store this path as MONOREPO_ROOT. All subsequent commands must be prefixed with cd $MONOREPO_ROOT && to ensure correct execution.
Validate dispatch_tx / message_id:
dispatch_tx nor message_id is provided → Error: "Must provide either dispatch_tx or message_id"dispatch_tx and message_id are provided → Error: "Provide only one of dispatch_tx or message_id, not both"If private_rpcs is true:
registry_path to http://localhost:3333Query the Hyperlane Explorer GraphQL API to resolve any missing values (dispatch_tx, origin_chain).
If message_id was provided:
query {
message_view(
where: { msg_id: { _eq: "\\x<message_id_without_0x>" } }
limit: 1
) {
origin_tx_hash
origin_domain
is_delivered
}
}
If dispatch_tx was provided but origin_chain is missing:
query {
message_view(
where: { origin_tx_hash: { _eq: "\\x<dispatch_tx_without_0x>" } }
limit: 1
) {
origin_domain
is_delivered
}
}
Use the mcp__hyperlane-explorer__query-graphql tool. Note: bytea fields use \\x prefix without 0x.
Extract values:
origin_tx_hash → convert \\x... to 0x... format → set as dispatch_txorigin_domain → set as origin_chain (e.g., "ethereum", "citrea")is_delivered → if true, inform user message is already delivered (no relay needed)If no message found: Error "Message not found in Hyperlane Explorer"
key was provided, use that value directlykey was NOT provided, use the default: $(HYPERLANE_MONOREPO=$(git rev-parse --show-toplevel) hypkey)hypkey directly. Only use it as an environment variable value when running the relay command.Run the following command (append --registry <registry_path> if registry_path is set):
cd $MONOREPO_ROOT && \
LOG_FORMAT=pretty LOG_LEVEL=debug HYP_KEY="<key>" \
pnpm -C typescript/cli hyperlane status --relay --origin <origin_chain> --dispatchTx <dispatch_tx>
If private_rpcs was true:
Surface the output to the user, including:
cd $MONOREPO_ROOT && \
LOG_FORMAT=pretty LOG_LEVEL=debug HYP_KEY="$(HYPERLANE_MONOREPO=$(git rev-parse --show-toplevel) hypkey)" \
pnpm -C typescript/cli hyperlane status --relay --origin ethereum --dispatchTx 0xabc123...
MONOREPO_ROOT=$(git rev-parse --show-toplevel)0xdef456... → get origin_tx_hash and origin_domainis_delivered - if already delivered, inform user and skip relaycd $MONOREPO_ROOT && \
LOG_FORMAT=pretty LOG_LEVEL=debug HYP_KEY="$(HYPERLANE_MONOREPO=$(git rev-parse --show-toplevel) hypkey)" \
pnpm -C typescript/cli hyperlane status --relay --origin <origin_domain> --dispatchTx <origin_tx_hash> --registry http://localhost:3333