[Referendum: 97] Manta Proposal Open/Accept HRMP channel and Register Asset xcMANTA

Manta XCM Disclosures

TL:DR

This batched proposal is to Accept/Open an HRMP channel with Manta and Register Asset(s) xcMANTA (optional)

Summary

We propose to open a bi-directional channel between Moonbeam and Manta. Initially, the main use case will be to transfer GLMR (optional) and MANTA tokens between the two chains, but it can be further expanded to other use cases. The proposal also includes the MANTA asset registration as xcMANTA, with the following details:

  • Multilocation: { parents: 1, interior: { X1: {Parachain: 2104}}}
  • Decimals: 18
  • Name: Manta
  • Symbol: xcMANTA

xcMANTA will have the following asset ID and XC-20 address:

  • Asset ID: 166446646689194205559791995948102903873
  • XC-20 address: 0xffffffff7d3875460d4509eb8d0362c611b4e841

Note: xcMANTA transfers will be disabled temporarily until the MANTA token is officially listed.

[Note: you can calculate the asset ID and XC-20 address using this script. For example: yarn calculate-external-asset-info --a ‘[MULTILOCATION OF ASSET]’

On-Chain Proposal Reference

On-Chain Referendum #[97] with the associated hash: 0xd0820aa59c1a693527bd0d4835f8ddff133ed4ba350719f50ff100e1343ae137

[Note: you can get the Proposal Number and Associated Hash from Polkadot.js Apps in Moonbeam]

Technical details:

The procedure for opening the channels is as follows:

  • Manta: already proposed to open an HRMP channel to Moonbeam
  • Moonbeam: democracy batched proposal:
    • Accept HRMP channel from Manta to Moonbeam
    • Open Moonbeam to Manta HRMP channel
    • Register MANTA asset as an XC-20 (optional)
  • Manta: democracy proposal to accept Moonbeam to Manta HRMP channel

Once the HRMP channels are ready, XCM based cross-chain transfer will be possible. The extrinsics that need to be executed on the relay chain, are:

  • To accept the HRMP channel to Moonbeam: hrmp.hrmpAcceptOpenChannel(sender: [parachainId]) , which hex-encoded call data is 0x3c0138080000
  • To open the HRMP channel from Moonbeam: hrmp.hrmpInitOpenChannel(recipient: [parachainId], proposedMaxCapacity: 1000, proposedMaxMessageSize: 102400), which its hex-encoded call data is 0x3c0038080000e803000000900100

[Note: you can get the hex encoded call data for both calls in the relay chain extrinsic page for both Polkadot. You’ll need to build the call there.]

The *proposedMaxCapacity *and proposedMaxMessageSize are set to the values of Polkadot/Kusama configuration.activeConfig.hrmpChannelMaxCapacity and configuration.activeConfig.hrmpChannelMaxMessageSize values, respectively.

These extrinsics need to be called from the parachain’s sovereign account as origin, via a democracy proposal. The proposal will use polkadotXcm pallet to send XCM message to the Relay Chain with the following items:

  • Withdraw asset: take funds out of the Sovereign Account of the origin parachain (in the relay chain) to a holding state
  • Buy execution: buys execution time from the relay chain, to execute the XCM message
  • Transact: provides the call data to be executed
  • Deposit asset (optional): refunds the leftover funds after the execution. If this is not provided, no refunds will be carried out

The asset will be registered with the metadata described in the summary. The setAssetUnitsPerSecond was calculated using the value for MANTA during its presale, targeting a XCM transaction cost of 0.02$.

If you are interested, the hex-encoded call data for this proposal in Moonbeam are respectively:

0x1e020c670003010003100004000000000700e40b540213000000000700e40b540200060002286bee02000400183c01380800000d0102040001010070617261d4070000000000000000000000000000000000000000000000000000670003010003100004000000000700e40b540213000000000700e40b540200060002286bee02000400383c0038080000e8030000009001000d0102040001010070617261d40700000000000000000000000000000000000000000000000000001e0208690000010100e120144d616e74611c78634d414e544112000100000000000000000000000000000001690100010100e120388e17a3db3ebfc0000000000000000016000000

As a prerequisite, the parachain’s sovereign account must contain at least 20 DOT/KSM to be locked as collateral (10 for each channel direction), plus some DOT/KSM to pay for XCM execution fees.

1 Like

Hey guys, please check the tech details before I submit the public proposal.

Assuming the parameters pass technical validation, I definitely support the HRMP channel and registration of xcMANTA. Manta network is gaining momentum and I believe getting 2-way transfers between networks will be beneficial for both ecosystems.

@AlbertoV19 can check. Please

I also support the XCM registration and adding Manta to the Moonbeam ecosystem. This would be a great addition to the community for both sides.

The hex-encoded call data:

0x1e020c6b090138080000010301000100e40b5402000000000000000000000002286bee02000400010700f2052a01020008006b090038080000e803000000900100010301000100e40b5402000000000000000000000002286bee02000400010700f2052a01020008001e0208690000010100e120144d616e74611c78634d414e544112000100000000000000000000000000000001690100010100e120388e17a3db3ebfc0000000000000000016000000

Corresponds to a proposal doing the following:

  • Accepting an incoming HRMP channel request from Parachain ID 2104
  • Proposing an HRMP channel to Parachain 2104 with 1000 max capacity and 102400 max message size
  • Registering asset { parents: 1, interior: { X1: {Parachain: 2104}}} as Manta token symbol xcMANTA with 18 decimals and a units per second of 13888888888888888888

Seems good! Once enacted, we will need to call the Precompile Registry Precompile to set the code of the XC-20. (Something that was done before through Governance but it is not needed now)

XCM Transactor pallet had an issue in which it crafted an XCM V3 message that could not be converted to XCM V2. Therefore, Referendum 96 was not properly enacted.

Referendum #97 is to repropose the Manta Proposal Open/Accept HRMP channel and Register Asset xcMANTA.

Link to the on-chain proposal:

The team seems to me focusing more on the token than the actual product are we sure that Manta can bring actual value or just grab some liquidity?
Calamari Twitter post