[Proposal: 3] Subsocial Proposal Open/Accept HRMP channel and Register Asset xcSUB

Subsocial XCM Disclosures


This batched proposal is to Accept/Open an HRMP channel with Subsocial and Register Asset xcSUB


We propose to open a bi-directional channel between Moonbeam and Subsocial. Initially, the main use case will be to transfer SUB between the two chains, but it can be further expanded to other use cases. The proposal also includes the SUB asset registration as xcSUB, with the following details:

  • Multilocation: {“parents”:1,“interior”:{“X1”:{“Parachain”:2101}}}
  • Decimals: 10
  • Name: Subsocial
  • Symbol: xcSUB

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

  • Asset ID: 89994634370519791027168048838578580624
  • XC-20 address: 0xffffffff43b4560bc0c451a3386e082bff50ac90

On-Chain Proposal Reference

On-Chain Referenda #3 with the associated hash: 0x9299022d8550af34b9ac5cc230ae76a157f72bab1428883e860520173a646f88

Technical details:

The procedure for opening the channels is as follows:

  • Subsocial: already proposed to open an HRMP channel to Moonbeam
  • Moonbeam: democracy batched proposal:
    • Accept HRMP channel from Subsocial to Moonbeam
    • Open Moonbeam to Subsocial HRMP channel
    • Register SUB asset as an XC-20
  • Subsocial: democracy proposal to accept Moonbeam to Subsocial 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: 2101) , which hex-encoded call data is 0x6b090135080000010301000100e40b5402000000000000000000000002286bee02000400010700863ba10102000800
  • To open the HRMP channel from Moonbeam: hrmp.hrmpInitOpenChannel(recipient: 2101, proposedMaxCapacity: 1000, proposedMaxMessageSize: 102400), which its hex-encoded call data is 0x6b090035080000e803000000900100010301000100e40b5402000000000000000000000002286bee02000400010700863ba10102000800

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 (3846153846153) was calculated using a $65M valuation for SUB, targeting a XCM transaction cost of 0.02$.

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


Link to the on-chain proposal:

1 Like