I am looking into XCMv2 and given the standard XcmOriginToCallOrigin configs on both chains:


and environment: HydraDX runtime & Acala runtime.

I was able to construct a polkadotXcm.send call to withdraw an asset from the sibling account on the other chain and send it back to a local account.

But it does not seem to be possible to withdraw an asset from your local chain (e.g. treasury or sibling) and send them to a (sibling) account on the other chain via democracy (dispatches as root).

Neither of the calls send, execute or reserveTransferAssets seems to provide the ability to do this and fails with FailedToTransactAsset. Presumably the xcm executor does not know from which account it should withdraw the asset and I could add a converter for (origin: superuser, location:here) and then use execute or reserveTransferAssets?

This is less favourable option tho as I would prefer not having to change anything in the runtime and use just an XCM call.

1 Answer 1


Solution is to use utility.dispatchAs and then you can use reserveTransferAssets.

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.