[Proposal: 76] Opening 5 XCM (HRMP) channels with Crust, EnergyWebX, Kilt, Polimec, Robonomics

TL:DR

This batched proposal is to initiate opening bidirectional HRMP channels with Crust, EnergyWebX, Kilt, Polimec, Robonomics and register assets xcCRU, xcEWT, xcKILT, xcPLMC, xcXRT

XCM Disclosures: TBD

Summary

I propose to open bi-directional channels between Moonbeam and Crust, EnergyWebX, Kilt, Polimec, and Robonomics. Initially, the main use case will be to transfer GLMR (optional) and CRU, EWT, KILT, PLMC, XRT between the chains, but it can be further expanded to other use cases. The proposal also includes the CRU, EWT, KILT, PLMC, XRT asset registration as xcCRU, xcEWT, xcKILT, xcPLMC, xcXRT, with the following details:

  • Crust

    • Multilocation: {“parents”: 1, “interior”: { “X1”: { “Parachain”: 2008 }}}
    • Decimals: 12
    • units per second: 55781532742644
    • coingecko: crust-network
    • Name: Crust
    • Symbol: xcCRU
    • Asset ID: 91494915805483577582632630447284510129
    • XC-20 address: 0xffffffff44d547a1afdb9965e7f50d8e9b755db1
  • Energy Web

    • Multilocation: {“parents”: 1, “interior”: { “X1”: { “Parachain”: 3345 }}}
    • Decimals: 18
    • units per second: 17241379310344827586
    • coingecko: energy-web-token
    • Name: EnergyWebX
    • Symbol: xcEWT
    • Asset ID: 12918853899538703959267810818394082568
    • XC-20 address: 0xffffffff09b814ac81777ed20fa9bb4df45ecd08
  • Kilt

    • Multilocation: {“parents”: 1, “interior”: { “X1”: { “Parachain”: 2086 }}}
    • Decimals: 15
    • units per second: 190730497806599275
    • coingecko: kilt-protocol
    • Name: Kilt
    • Symbol: xcKILT
    • Asset ID: 240880706016230232355462832677824058929
    • XC-20 address: 0xffffffffb537efbcc5971a307aa97902ced15631
  • Polimec

    • Multilocation: {“parents”: 1, “interior”: { “X1”: { “Parachain”: 3344 }}}
    • Decimals: 10
    • units per second: 1261644983194
    • coingecko: polimec
    • Name: Polimec
    • Symbol: xcPLMC
    • Asset ID: 303030103121785258767765889324676596982
    • XC-20 address: 0xffffffffe3f97997536d7966d90a2bc56978c4f6
  • Robonomics

    • Multilocation: {“parents”: 1, “interior”: { “X1”: { “Parachain”: 3388 }}}
    • Decimals: 9
    • units per second: 10822510822
    • coingecko: robonomics-network
    • Name: Robonomics
    • Symbol: xcXRT
    • Asset ID: 84332159473157763089773888451787071419
    • XC-20 address: 0xffffffff3f71c87a946e410db6387da0362f9fbb

On-Chain Proposal Reference

On-Chain Preimage: 0xc6a0e8b547e5b9348fb10724aa3053daf4b6e6ba6d7f46c89907ed3510f4c04e
I will wait for initial proposal feedback before submitting that preimage as an on-chain proposal.

Technical details:

The procedure for opening the channels is as follows:

  • Moonbeam: batched proposal to initiate opening an HRMP channel with Crust, EnergyWebX, Kilt, Polimec, Robonomics parachains.
  • each chain: democracy batched proposal:
    • Accept HRMP channel from Moonbeam
    • Initiate opening an HRMP channel back to Moonbeam
    • Register GLMR asset on the chain
  • Moonbeam: democracy proposal to accept each returning HRMP open channel request and register the chain’s token as an xcToken on Moonbeam

The batched extrinsic that needs to be executed on the relay chain is:

  • hrmp.hrmpInitOpenChannel(recipient: [2008], MaxCapacity: 1000, MaxMessageSize: 102400)
  • hrmp.hrmpInitOpenChannel(recipient: [2086], MaxCapacity: 1000, MaxMessageSize: 102400)
  • hrmp.hrmpInitOpenChannel(recipient: [3344], MaxCapacity: 1000, MaxMessageSize: 102400)
  • hrmp.hrmpInitOpenChannel(recipient: [3345], MaxCapacity: 1000, MaxMessageSize: 102400)
  • hrmp.hrmpInitOpenChannel(recipient: [3388], MaxCapacity: 1000, MaxMessageSize: 102400)

the Polkadot hex-encoded call data is 0x1a00143c00d8070000e8030000009001003c0026080000e8030000009001003c00100d0000e8030000009001003c00110d0000e8030000009001003c003c0d0000e803000000900100

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

0x670003010003140004000000000700e40b540213000000000700e40b54020006000700e40b54022638040025011a00143c00d8070000e8030000009001003c0026080000e8030000009001003c00100d0000e8030000009001003c00110d0000e8030000009001003c003c0d0000e803000000900100140d0102040001010070617261d4070000000000000000000000000000000000000000000000000000

Note that after Polkadot referendum 1071 passed, all of these chains have enough DOT in their Child accts to open these HRMP channels.

After this initial proposal passes and the first batched extrinsic is sent to initiate opening HRMP channels, there will be some time delay before each parachain accepts the channel open requests and sends one back. At that time I will recalculate the units per second values and generate new extrinsics to consolidate the 2nd stage of accepting channels into as few transactions/proposals as possible. Therefore I am not providing the specific asset registration extrinsics yet.

4 Likes

XCM Disclosures for all of these networks:

2 Likes

I have combined this proposal for Robonomics, EnergyWeb, Polimec, and Kilt with the XCM proposal for Mythos and submitted it as a single on-chain proposal now:

(I removed Crust because when I submittted a proposal on their chain it was given the same number as an existing proposal. They have a misconfiguration which has rendered their on-chain governance unusable.)

1 Like

Hey @spazcoin thanks for creating this proposal! Appreciate it!

I’d like to ask @AlbertoV19 if the XCM calls are all good from a core dev perspective. If so I’ll fully support it :slight_smile:

Hey @MAR1 - Yes, I checked the calls of the proposed preimage, and it executed correctly as expected :smile:

The preimage I tested was 0xb1d4d91c78cf86e1420ca5882f36f9a8bcdcded7ace80a40791e09b1df199dd6 which is the one submitted on-chain

1 Like