XCM Monitor
- Agent ID
- xcm
- APIs
- webhooks, streams
- Networks
- all with open XCM channels
The XCM Monitor tracks cross-chain interactions and asset transfers via the XCM protocol. Subscribe to events like xcm.sent
and xcm.received
to monitor message lifecycles in real time, with configurable options and detailed metadata for each stage.
Input Arguments
Argument | Description | Required |
---|---|---|
origins | A set of origin
network IDs
. Use “*” for any. |
yes |
destinations | A set of destination
network IDs
. Use “*” for any. |
yes |
senders | A set of account addresses. If the address is in SS58 format, it will be converted to a public key for matching. Supports public keys as hex strings. Use “*” for any. |
yes |
events | The events to subscribe to. Supported values: xcm.sent , xcm.received , xcm.relayed , xcm.timeout , xcm.hop , xcm.bridge .Use “*” for all. |
no |
You can retrieve the input schema from https://api.ocelloids.net/agents/xcm/inputs .
XCM Monitor Arguments JSON Schema
{
"type": "object",
"properties": {
"origins": {
"anyOf": [
{
"type": "string",
"const": "*"
},
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
]
},
"senders": {
"anyOf": [
{
"type": "string",
"const": "*"
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
}
]
},
"destinations": {
"anyOf": [
{
"type": "string",
"const": "*"
},
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
]
},
"bridges": {
"type": "array",
"items": {
"type": "string",
"enum": [
"pk-bridge",
"snowbridge"
]
},
"minItems": 1
},
"events": {
"anyOf": [
{
"type": "string",
"const": "*"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"xcm.sent",
"xcm.received",
"xcm.relayed",
"xcm.timeout",
"xcm.hop",
"xcm.bridge"
]
},
"minItems": 1
}
]
}
},
"required": [
"origins",
"destinations"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
Examples
Check out the XCM Tracker application for a complete example: XCM Tracker Repository
Track Polkadot Transfers through WebSocket
This example demonstrates how to subscribe to XCM transfers originating from Polkadot to specific destinations (Polkadot Asset Hub, Moonbeam, Bifrost, and Hydration). The delivery channel is set to WebSocket only.
{
"id": "polkadot-transfers",
"agent": "xcm",
"public": true,
"args": {
"senders": "*",
"origins": ["urn:ocn:polkadot:0"],
"destinations": [
"urn:ocn:polkadot:1000",
"urn:ocn:polkadot:2004",
"urn:ocn:polkadot:2030",
"urn:ocn:polkadot:2034"
],
"events": "*"
},
"channels": [
{
"type": "websocket"
}
]
}
For integration examples with the Ocelloids client library, please refer to the Subscription Example .
XCM Event Types
The XCM Monitor sends different XCM events through the configured delivery channel throughout an XCM journey.
xcm.sent
Triggered when an XCM message is sent from the origin network.
xcm.received
Triggered when an XCM message is received on the destination network.
xcm.relayed
Triggered when an XCM message is relayed through the relay chain in Horizontal Relay Messaging Protocol (HRMP).
xcm.timeout
This event is triggered when no xcm.received event is detected for a corresponding xcm.sent event within the configured timeframe. The timeout threshold is currently set to 5 minutes.
xcm.hop
Triggered on XCM execution on intermediate networks for multi-hop XCMs.
The order in which XCM events are emitted is not guaranteed. Variations in block times and network conditions across chains can cause events to arrive out of sequence. You could use event metadata, such as timestamps and waypoint.legIndex
, to accurately reconstruct the XCM journey.
Output Messages
The output contains metadata and payload.
Metadata
Field | Description | Type |
---|---|---|
type | XCM event type. Possible values are: xcm.sent , xcm.received , xcm.relayed , xcm.timeout , xcm.hop . |
enum |
subscriptionId | Corresponding subscription ID. | string |
agentId | Corresponding agent ID. Always "xcm" . |
string |
networkId | Network ID of the chain that emitted the XCM event. | string |
timestamp | Timestamp of message delivery. Unix timestamp in milliseconds. | number |
blockTimestamp | Timestamp of the block at which the XCM event is emitted. Unix timestamp in milliseconds. | number |
An example of the metadata structure:
{
"type": "xcm.sent",
"subscriptionId": "polkadot-assethub-transfers",
"agentId": "xcm",
"networkId": "urn:ocn:polkadot:1000",
"timestamp": 1736784783869,
"blockTimestamp": 1736784756000
}
Payload
Field | Description | Type |
---|---|---|
type | XCM event type. Possible values are: xcm.sent , xcm.received , xcm.relayed , xcm.timeout , xcm.hop . |
enum |
subscriptionId | Corresponding subscription ID. | string |
legs | Legs of the XCM journey. | Leg[] |
sender | Account information of the sender. | Sender |
messageId | Unique Topic ID of the XCM, if any. | Optional<string> |
direction | Direction of the XCM hop, only applicable to xcm.hop events.Possible values are: out , in |
Optional<string> |
waypoint | XCM waypoint information. | XcmWaypointContext |
origin | XCM origin information. | XcmWaypointContext |
destination | XCM destination information. | XcmWaypointContext |
Leg
Contains information about the legs of an XCM journey.
Field | Description | Type |
---|---|---|
from | Network ID of the origin network for the leg. | string |
to | Network ID of the destination network for the leg. | string |
type | Leg type. Possible values are: vmp , hrmp , hop |
eunm |
relay | Network ID of the relay chain in case of HRMP message. | Optional<string> |
partialMessage | SCALE-encoded partial XCM to be executed on leg destination. | Optional<string> |
XCM Waypoints
The XCM waypoint provides detailed information about the current step or location in the journey of an XCM message. Its value depends on the type of event:
xcm.sent
The waypoint
field matches the origin network where the XCM message was sent from.
xcm.received
The waypoint
field matches the destination network where the XCM message was successfully received.
xcm.relayed
The waypoint
field contains information about the relay chain that processed the XCM message during horizontal relay messaging (HRMP).
xcm.hop
The waypoint
field contains information about the intermediary network where the XCM message was executed during a multi-hop journey.
XCM Waypoint Context
The XcmWaypointContext
contains all the context information for the XCM waypoint, origin or destination.
Field | Description | Type |
---|---|---|
chainId | Network ID of the waypoint network. | string |
legIndex | Position of the leg in the legs array. Starting from 0. |
number |
outcome | The outcome of the XCM execution. Possible values are: Success , Fail |
enum |
blockHash | Block hash of the block where the XCM event is emitted. | string |
blockNumber | Block number of the block where the XCM event is emitted. | string |
timestamp | Block timestamp of the block where the XCM event is emitted. Unix timestamp in milliseconds. | number |
extrinsicHash | Extrinsic hash of the extrinsic where the XCM event is emitted, if any. | Optional<string> |
extrinsicPosition | Extrinsic position in the block of the extrinsic where the XCM event is emitted, if any. | Optional<number> |
event | Event object of the emitted XCM event. | json |
messageData | SCALE-encoded XCM instructions. | string |
instructions | Array of decoded XCM instructions. | json |
messageHash | XCM message hash. | string |
error | XCM execution error, if any. | Optional<json> |
assetsTrapped | Information about the assets trapped, if any. | Optional<json> |
How to Handle Outcomes and Errors
The XCM Monitor provides execution outcomes and error diagnostics in the message payload waypoint
, origin
and destination
fields. Here’s how to manage these effectively:
Outcome handling on XCM sent
Check the outcome
field in the payload.origin
object to confirm successful or failed execution.
Example origin field in message payload on successful execution
{
"chainId": "urn:ocn:polkadot:1000",
"blockHash": "0x414c67e042454d58ebf8b411e1e9309e8bbca8de8d744e164d325faaac78c1b3",
"blockNumber": "7984956",
"extrinsicHash": "0x3899d51a6008b50d5ae331a538f42498baebdc56cbd6ac5a5bdb4e862925d080",
"timestamp": 1736784756000,
"extrinsicPosition": 7,
"event": {
// XCM event data
},
"outcome": "Success",
"error": null,
"messageData": "0x0314010400010300a10f043205011f0003211346ca0a1300010300a10f043205011f0003211346ca000d01020400010100140f4b4ede3215fa43e3c8396ed5003e40a8157cec6f4dd0b3735f8160493f032c800086d458e317a805e8a9513139221e5d6e0d661f083e44f79cde55789b88c4",
"instructions": {
// XCM instructions
},
"messageHash": "0x9ce3782210175d4d35cfd8a39f7d9dfab6ca547e3e3b9f9c0c9c18ce6f1c8e18"
}
Outcome handling on XCM received
Check the outcome
field in the payload.destination
object to confirm successful or failed execution.
Example destination field in message payload on successful execution
{
"chainId": "urn:ocn:polkadot:2034",
"blockNumber": "6765888",
"blockHash": "0xb26cde4ac466c5fbdc8bef19b06754fcd1d5e94d3ac15958cd916606ac3fb555",
"timestamp": 1736784780000,
"event": {
// XCM event data
},
"outcome": "Success",
"instructions": {
// XCM instructions
},
"messageData": "0x0314010400010300a10f043205011f0003211346ca0a1300010300a10f043205011f0003211346ca000d01020400010100140f4b4ede3215fa43e3c8396ed5003e40a8157cec6f4dd0b3735f8160493f032c800086d458e317a805e8a9513139221e5d6e0d661f083e44f79cde55789b88c4",
"messageHash": "0x9ce3782210175d4d35cfd8a39f7d9dfab6ca547e3e3b9f9c0c9c18ce6f1c8e18"
}
Outcome handling on intermediate XCM hop execution
Check the outcome
field in the payload.waypoint
object to confirm successful or failed execution.
Example waypoint field in message payload on successful execution
{
"legIndex": 1,
"chainId": "urn:ocn:local:2034",
"blockHash": "0xfcefde93bba551ab5118aa1fb954b8b3d58ee81a5eef835132f37ab72cc70987",
"blockNumber": "4624161",
"event": {
// XCM event data
},
"outcome": "Success",
"error": null,
"messageData": "0x03100004000002043205011f0007f1d9052a010a13000002043205011f0002093d00000d0102040001010081bd2c1d40052682633fb3e67eff151b535284d1d1a9633613af14006656f42b",
"messageHash": "0x03f0f87c9f89de3b78e730e0c6af44941b3ada5446b46ff59460faa667a0c85d",
"instructions": {
// XCM instructions
}
}
Handling Multi-Hop XCMs
Multi-hop XCMs involve transferring assets or messages across intermediate networks before reaching their final destination. Here’s how to identify and handle multi-hop XCMs:
Identifying Multi-Hop XCMs
Check the legs
property in received subscription messages. If there are multiple legs, the XCM is multi-hop. Multi-hop XCMs generate additional events (xcm.hop
) alongside the standard xcm.sent
, xcm.relayed
, and xcm.received
events.
Multi-Hop XCM Success Scenario
A user sends ASTR tokens from Hydration to Bifrost. Since ASTR’s asset reserve is on Astar, the XCM routes through Astar, resulting in two legs:
Leg 1 (HRMP hop):
Hydration → Polkadot Relay → Astar
Leg 2 (HRMP):
Astar → Polkadot Relay → Bifrost
The legs
property for this journey will look like this:
[
{
"from": "urn:ocn:polkadot:2034",
"to": "urn:ocn:polkadot:2006",
"type": "hop",
"relay": "urn:ocn:polkadot:0"
},
{
"from": "urn:ocn:polkadot:2006",
"to": "urn:ocn:polkadot:2030",
"type": "hrmp",
"partialMessage": "0x040813010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"relay": "urn:ocn:polkadot:0"
}
]
If the XCM executes successfully, you can expect six events:
One xcm.sent
from Hydration.
Example Hydration XCM Sent
{
"type": "xcm.sent",
"legs": [
{
"from": "urn:ocn:polkadot:2034",
"to": "urn:ocn:polkadot:2006",
"type": "hop",
"relay": "urn:ocn:polkadot:0"
},
{
"from": "urn:ocn:polkadot:2006",
"to": "urn:ocn:polkadot:2030",
"type": "hrmp",
"partialMessage": "0x040813010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"relay": "urn:ocn:polkadot:0"
}
],
"sender": {
"signer": {
"id": "7NSzbPmboW99jDFj9MoHDU8R1oNxs4pVDnNzWogcoyE2DhVZ",
"publicKey": "0xd6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356"
},
"extraSigners": []
},
"messageId": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a",
"waypoint": {
"legIndex": 0,
// same as origin
},
"origin": {
"chainId": "urn:ocn:polkadot:2034",
"blockHash": "0x41b84a4b9121373df323648b5b2ac59e82828eea6b8f5d0ff4fae4d9290ca086",
"blockNumber": "6783730",
"extrinsicHash": "0x54dec578372374b8417738861dfe1ea4185be3e3b6a0183d7c8da4ca69a2e1e6",
"timestamp": 1737032856000,
"extrinsicPosition": 4,
"event": {
// XCM event data
},
"outcome": "Success",
"error": null,
"messageData": "0x041000040000001b000040b2bac9e0191e020a130000001b00002059dd64f00c0f01000e010204010100b91f0813010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"instructions": {
// XCM instructions
},
"messageHash": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a"
},
"destination": {
"chainId": "urn:ocn:polkadot:2030"
}
}
Two xcm.relayed
from the Polkadot relay chain (one for each leg).
Example Polkadot XCM Relayed
{
"type": "xcm.relayed",
"legs": [
// same leg info as in xcm.sent
],
"sender": {
"signer": {
"id": "7NSzbPmboW99jDFj9MoHDU8R1oNxs4pVDnNzWogcoyE2DhVZ",
"publicKey": "0xd6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356"
},
"extraSigners": []
},
"messageId": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a",
"waypoint": {
"legIndex": 0,
"chainId": "urn:ocn:polkadot:0",
"blockNumber": "24312899",
"blockHash": "0x884851a792d29c200fb87cf7a5f7a9fe6dee11e7caa51293e382d559830908e5",
"timestamp": 1737032862000,
"extrinsicPosition": 1,
"outcome": "Success",
"instructions": {
// XCM instructions
},
"messageData": "0x041000040000001b000040b2bac9e0191e020a130000001b00002059dd64f00c0f01000e010204010100b91f0813010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"messageHash": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a"
},
"origin": {
"chainId": "urn:ocn:polkadot:2034",
"blockHash": "0x41b84a4b9121373df323648b5b2ac59e82828eea6b8f5d0ff4fae4d9290ca086",
"blockNumber": "6783730",
"extrinsicHash": "0x54dec578372374b8417738861dfe1ea4185be3e3b6a0183d7c8da4ca69a2e1e6",
"timestamp": 1737032856000,
"extrinsicPosition": 4,
"event": {
// XCM event data
},
"outcome": "Success",
"error": null,
"messageData": "0x041000040000001b000040b2bac9e0191e020a130000001b00002059dd64f00c0f01000e010204010100b91f0813010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"instructions": {
//XCM instructions
},
"messageHash": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a"
},
"destination": {
"chainId": "urn:ocn:polkadot:2030"
}
}
Two xcm.hop
from Astar:
One with direction="in"
and waypoint.legIndex=0
when Astar receives the XCM.
Example Astar XCM Hop In
{
"type": "xcm.hop",
"legs": [
// same as xcm.sent
],
"sender": {
"signer": {
"id": "7NSzbPmboW99jDFj9MoHDU8R1oNxs4pVDnNzWogcoyE2DhVZ",
"publicKey": "0xd6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356"
},
"extraSigners": []
},
"messageId": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a",
"direction": "in",
"waypoint": {
"legIndex": 0,
"chainId": "urn:ocn:polkadot:2006",
"blockHash": "0xcd40316a935346c6f6abc43cb986de4c3ad7ef8eecdbbb1a0eff11973e80cb6c",
"blockNumber": "7898378",
"timestamp": 1737032868000,
"event": {
// XCM event data
},
"outcome": "Success",
"messageData": "0x041000040000001b000040b2bac9e0191e020a130000001b00002059dd64f00c0f01000e010204010100b91f0813010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"messageHash": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a",
"instructions": {
// XCM instructions
}
},
"origin": {
"chainId": "urn:ocn:polkadot:2034",
"blockHash": "0x41b84a4b9121373df323648b5b2ac59e82828eea6b8f5d0ff4fae4d9290ca086",
"blockNumber": "6783730",
"extrinsicHash": "0x54dec578372374b8417738861dfe1ea4185be3e3b6a0183d7c8da4ca69a2e1e6",
"timestamp": 1737032856000,
"extrinsicPosition": 4,
"event": {
// XCM event data
},
"outcome": "Success",
"error": null,
"messageData": "0x041000040000001b000040b2bac9e0191e020a130000001b00002059dd64f00c0f01000e010204010100b91f0813010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"instructions": {
// XCM instructions
},
"messageHash": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a"
},
"destination": {
"chainId": "urn:ocn:polkadot:2030"
}
}
One with direction="out"
and waypoint.legIndex=1
when Astar forwards the XCM to Bifrost.
Example Astar XCM Hop Out
{
"type": "xcm.hop",
"legs": [
// same as xcm.sent
],
"sender": {
"signer": {
"id": "7NSzbPmboW99jDFj9MoHDU8R1oNxs4pVDnNzWogcoyE2DhVZ",
"publicKey": "0xd6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356"
},
"extraSigners": []
},
"messageId": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a",
"direction": "out",
"waypoint": {
"legIndex": 1,
"chainId": "urn:ocn:polkadot:2006",
"blockHash": "0xcd40316a935346c6f6abc43cb986de4c3ad7ef8eecdbbb1a0eff11973e80cb6c",
"blockNumber": "7898378",
"timestamp": 1737032868000,
"event": {
// XCM event
},
"outcome": "Success",
"error": null,
"messageData": "0x04100104010100591f001b063c6c60acd23f191e020a13010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"messageHash": "0xf61b67b82c5611de54690f204fc358c048cc3c523600604cdff6224d843e89f9",
"instructions": {
// XCM instructions
}
},
"origin": {
"chainId": "urn:ocn:polkadot:2034",
"blockHash": "0x41b84a4b9121373df323648b5b2ac59e82828eea6b8f5d0ff4fae4d9290ca086",
"blockNumber": "6783730",
"extrinsicHash": "0x54dec578372374b8417738861dfe1ea4185be3e3b6a0183d7c8da4ca69a2e1e6",
"timestamp": 1737032856000,
"extrinsicPosition": 4,
"event": {
// XCM event
},
"outcome": "Success",
"error": null,
"messageData": "0x041000040000001b000040b2bac9e0191e020a130000001b00002059dd64f00c0f01000e010204010100b91f0813010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"instructions": {
// XCM instructions
},
"messageHash": "0x728e2394a33023af2a21efa3092b4cbecbf52b21d8ad7790fd29728a2972d81a"
},
"destination": {
"chainId": "urn:ocn:polkadot:2030"
}
}
One xcm.received
in Bifrost.
Example Bifrost XCM Received
{
"type": "xcm.received",
"legs": [
// same as xcm.sent
],
"messageId": "0xf61b67b82c5611de54690f204fc358c048cc3c523600604cdff6224d843e89f9",
"waypoint": {
"legIndex": 1,
// same as destination
},
"origin": {
"chainId": "urn:ocn:polkadot:2006",
"blockHash": "0xcd40316a935346c6f6abc43cb986de4c3ad7ef8eecdbbb1a0eff11973e80cb6c",
"blockNumber": "7898378",
"timestamp": 1737032868000,
"event": {
// XCM event
},
"outcome": "Success",
"error": null,
"messageData": "0x04100104010100591f001b063c6c60acd23f191e020a13010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"instructions": {
// XCM instructions
},
"messageHash": "0xf61b67b82c5611de54690f204fc358c048cc3c523600604cdff6224d843e89f9"
},
"destination": {
"chainId": "urn:ocn:polkadot:2030",
"blockNumber": "6352399",
"blockHash": "0x538bba53c9f39b260143facdfbf584d6f2a614fd6754ec2adc13b2d95e1f941d",
"timestamp": 1737032886000,
"event": {
// XCM event
},
"outcome": "Success",
"instructions": {
// XCM instructions
},
"messageData": "0x04100104010100591f001b063c6c60acd23f191e020a13010100591f001b00002059dd64f00c0f01000d01020400010100d6a5278d06644f0ca64831082203b30484d98d5a34af53f05e41ba6f6a7a8356",
"messageHash": "0xf61b67b82c5611de54690f204fc358c048cc3c523600604cdff6224d843e89f9"
}
}
Multi-Hop XCM Failure on Intermediate Chain
When an XCM fails on an intermediate chain, no further events are emitted beyond the point of failure. For example:
Scenario: Polkadot sends an XCM to Hydration to withdraw USDt from its account on Hydration and send it to Polkadot Asset Hub.
Failure: The XCM fails on Hydration, potentially due to insufficient funds to cover execution fees.
Outcome: The XCM is not forwarded to Asset Hub, and the journey terminates on Hydration.
Events Received in This Scenario
Polkadot xcm.sent
: The initial event indicating the XCM was sent from Polkadot.
Hydration xcm.hop
(direction: in): This event indicates that Hydration received the XCM. The event will include waypoint.outcome="Fail"
to signify the failure.
No further events, such as xcm.hop
(direction: out) or xcm.received
, will occur because the XCM journey terminates at the failure point.
Polkadot XCM Sent
{
"type": "xcm.sent",
"legs": [
{
"from": "urn:ocn:polkadot:0",
"to": "urn:ocn:polkadot:2034",
"type": "hop"
},
{
"from": "urn:ocn:polkadot:2034",
"to": "urn:ocn:polkadot:1000",
"type": "hrmp",
"partialMessage": "0x030813000002043205011f0002093d00000d0102040001010081bd2c1d40052682633fb3e67eff151b535284d1d1a9633613af14006656f42b",
"relay": "urn:ocn:polkadot:0"
}
],
"messageId": "0x83a8919ac73b77e10f0dab10431d88bb21e633b5a09e95717735ce4af3b8d73b",
"waypoint": {
"chainId": "urn:ocn:polkadot:0",
"blockHash": "0xc4ad1854e764ac02a29bc8c26aada45c6164632c1b3c7d8ce11e623ded70539c",
"blockNumber": "24328340",
"timestamp": 1737125922000,
"event": {
// XCM event
},
"outcome": "Success",
"error": null,
"messageData": "0x0310000400010300a10f043205011f000700f2052a011300010300a10f043205011f000700f2052a010010010204010100a10f0813000002043205011f0002093d00000d0102040001010081bd2c1d40052682633fb3e67eff151b535284d1d1a9633613af14006656f42b2c83a8919ac73b77e10f0dab10431d88bb21e633b5a09e95717735ce4af3b8d73b",
"instructions": {
// XCM instructions
},
"messageHash": "0x4e9c1af26b6f3cd3e65043407256c7838d01e7783265f08d39b7d408b058281f",
"legIndex": 0
},
"origin": {
"chainId": "urn:ocn:polkadot:0",
"blockHash": "0xc4ad1854e764ac02a29bc8c26aada45c6164632c1b3c7d8ce11e623ded70539c",
"blockNumber": "24328340",
"timestamp": 1737125922000,
"event": {
// XCM event
},
"outcome": "Success",
"error": null,
"messageData": "0x0310000400010300a10f043205011f000700f2052a011300010300a10f043205011f000700f2052a010010010204010100a10f0813000002043205011f0002093d00000d0102040001010081bd2c1d40052682633fb3e67eff151b535284d1d1a9633613af14006656f42b2c83a8919ac73b77e10f0dab10431d88bb21e633b5a09e95717735ce4af3b8d73b",
"instructions": {
// XCM instructions
},
"messageHash": "0x4e9c1af26b6f3cd3e65043407256c7838d01e7783265f08d39b7d408b058281f"
},
"destination": {
"chainId": "urn:ocn:polkadot:1000"
}
}
Hydration XCM Hop In
{
"type": "xcm.hop",
"legs": [
{
"from": "urn:ocn:polkadot:0",
"to": "urn:ocn:polkadot:2034",
"type": "hop"
},
{
"from": "urn:ocn:polkadot:2034",
"to": "urn:ocn:polkadot:1000",
"type": "hrmp",
"partialMessage": "0x030813000002043205011f0002093d00000d0102040001010081bd2c1d40052682633fb3e67eff151b535284d1d1a9633613af14006656f42b",
"relay": "urn:ocn:polkadot:0"
}
],
"messageId": "0x83a8919ac73b77e10f0dab10431d88bb21e633b5a09e95717735ce4af3b8d73b",
"direction": "in",
"waypoint": {
"legIndex": 0,
"chainId": "urn:ocn:polkadot:2034",
"blockHash": "0x3720e3ae7c60da6f758b39dd057bc38ce989a3e6a9d6bd3a3e1c7a69fe4f6852",
"blockNumber": "6790464",
"timestamp": 1737125952000,
"event": {
// XCM event
},
"outcome": "Fail",
"messageData": "0x0310000400010300a10f043205011f000700f2052a011300010300a10f043205011f000700f2052a010010010204010100a10f0813000002043205011f0002093d00000d0102040001010081bd2c1d40052682633fb3e67eff151b535284d1d1a9633613af14006656f42b2c83a8919ac73b77e10f0dab10431d88bb21e633b5a09e95717735ce4af3b8d73b",
"messageHash": "0x4e9c1af26b6f3cd3e65043407256c7838d01e7783265f08d39b7d408b058281f",
"instructions": {
// XCM instructions
}
},
"origin": {
"chainId": "urn:ocn:polkadot:0",
"blockHash": "0xc4ad1854e764ac02a29bc8c26aada45c6164632c1b3c7d8ce11e623ded70539c",
"blockNumber": "24328340",
"timestamp": 1737125922000,
"event": {
// XCM event
},
"outcome": "Success",
"error": null,
"messageData": "0x0310000400010300a10f043205011f000700f2052a011300010300a10f043205011f000700f2052a010010010204010100a10f0813000002043205011f0002093d00000d0102040001010081bd2c1d40052682633fb3e67eff151b535284d1d1a9633613af14006656f42b2c83a8919ac73b77e10f0dab10431d88bb21e633b5a09e95717735ce4af3b8d73b",
"instructions": {
// XCM instructions
},
"messageHash": "0x4e9c1af26b6f3cd3e65043407256c7838d01e7783265f08d39b7d408b058281f"
},
"destination": {
"chainId": "urn:ocn:polkadot:1000"
}
}