Message debugging
Finding a message ID from an origin transaction
- EVM Origin
- Cosmos Origin
The easiest way is to use the Hyperlane Explorer, if your chain is supported. If your chain isn't supported, the message ID can be found by looking at the originating transaction.
When viewing the origin transaction on the origin chain's block explorer, navigate the the Logs tab.
The DispatchId
log contains the message ID as the topic number 1 (the second topic).
Sometimes, chain block explorers won't show the human-friendly "DispatchId" name. In this case, you can find the log by it's topic 0: 0x788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a
.
When viewing the origin transaction on the origin chain's block explorer, navigate the the Event Logs tab.
The Wasm Mailbox Dispatch Id log contains the message ID.
Debugging a message to a Cosmos chain
At the moment, the Hyperlane Explorer doesn't support non-EVM chains.
To check if your message has been delivered, select the destination chain and input your message ID below:
My warp route transfer says it was delivered, but I donβt see it
We can debug this with two steps:
Verifying if the funds were received:
- EVM Destination
- Cosmos Destination
- Open the block explorer for the destination chain, and navigate to your expected recipient address.
- If you expect to receive a token (e.g. an ERC-20), check the Token Transfers tab for the token being transferred to your address.
- If you expect to receive the native token (e.g. ETH, on Ethereum), check the "Internal Transactions" tab for the native token being transferred to your address.
- Open the block explorer for the destination chain, and navigate to your expected recipient address.
- View your "Coins" or "Tokens" tab, and look for the expected balance.
- If it's not clear if your balance is what you expect, the check the list of transactions. Look for any transactions that include "Process".
Verifying the recipient of your transfer
- EVM Origin
- Cosmos Origin
When viewing the origin transaction on the origin chain's block explorer, navigate the the Logs tab.
The SentTransferRemote
log contains the recipient as the topic number 1 (the second topic).
Sometimes, chain block explorers won't show the human-friendly "SentTransferRemote" name. In this case, you can find the log by it's topic 0: 0xd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec
.
The recipient address is the account on the destination chain that will receive the warped tokens. Zeroes are padded to the left of the address if needed.
If your destination chain is an EVM chain, the log will display 0x0000000000000000000000ffffffffffffffffffffffffffffffffffffffff
to mean that 0xffffffffffffffffffffffffffffffffffffffff
is the transfer recipient.
If your destination chain is a Cosmos chain, you can take the hexadecimal content and convert it to a bech32 address using tools like this one. Some Cosmos chains have different address lengths, so be conscious of how many characters to copy in.
When viewing the origin transaction on the origin chain's block explorer, navigate the the Event Logs tab.
The log including Transfer Remote contains the message ID, for example: Wasm Hpl Warp Native Transfer Remote
.
The recipient address is the account on the destination chain that will receive the warped tokens. Zeroes are padded to the left of the address if needed.
If your destination chain is an EVM chain, the log will display 0x0000000000000000000000ffffffffffffffffffffffffffffffffffffffff
to mean that 0xffffffffffffffffffffffffffffffffffffffff
is the transfer recipient.
If your destination chain is a Cosmos chain, you can take the hexadecimal content and convert it to a bech32 address using tools like this one. Some Cosmos chains have different address lengths, so be conscious of how many characters to copy in.
My Warp Route transfer recipient isn't the address I wanted
Sometimes browser extension wallets can contend with one another, and the address of a wallet you don't typically use takes precedence over your intended wallet. We've seen this happen a few times with OKX Wallet. Please check all your wallet addresses for your recipient address.
Relaying an EVM β EVM message yourself
Using the Hyperlane CLI, it's possible to relay your message yourself if it's between two EVM chains.
- Set up the CLI locally following these instructions.
- Find your message ID following the above instructions
- Obtain a private key for an account with funds on your destination chain.
- Run the command to relay the message:
HYP_KEY=<your-private-key> hyperlane status --relay --origin <origin-chain> --destination <destination-chain> --id <message-id>
For example:
HYP_KEY=0xffff00000000000000000000000000000000000000000000000000000000ffff hyperlane status --relay --origin base --destination blast --id 0xabcd00000000000000000000000000000000000000000000000000000000abcd
I still need help with my message not being delivered
If the above steps haven't helped, you can join our Discord and create a new post in the #support-forum channel.