I want to send some extra information ("Call") with the TransferReserveAsset Message. As it has an extra field called xcm:-

TransferReserveAsset { assets: MultiAssets, dest: MultiLocation, xcm: Xcm<()> }

But reserve_transfer_assets extrinsic function in pallet-xcm doesn't take that as an argument.

So is there any way I can send a TransferReserveAsset Message with an extra XCM Message from relay-chain to Parachain?

1 Answer 1


The reserve_transfer_assets call in pallet-xcm is only designed to transfer some assets from the local chain to the sovereign account of a destination chain and forward a notification XCM as you can see in the source code. It is not meant to send arbitrary XCM messages in it.

If you want to send an arbitrary call as an XCM message from the relay chain you may use the send call, where the XCM message to send is of type Box<VersionedXcm<()>> as you can see here. But bear in mind that the destination chain should be configured to accept and process this XCM message.

  • I have a requirement where the user can transfer some DOT to our sovereign account on the relay chain, and at the same time, the user can send some extra information (possibly in the form of a transaction) to our parachain. The issue is that we can use the send_xcm() extrinsic to send the transaction, but it doesn't guarantee the DOT transfer by the user on the relay chain. Is there any way to solve this problem?
    – ZKT
    Jan 10, 2023 at 5:35
  • 1
    I am not sure how feasible to achieve is this from the relay chain point of view as of now (XCM v2). But I recommend you to open a new question on Substrate Exchange about this, trying to be as detailed as possible about the concrete cross-chain scenario.
    – Iker
    Jan 10, 2023 at 16:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.