Open HRMP Channel Between Acala and Astar Network

TL;DR

We propose to open HRMP communication between Acala and Astar Network. This will require a few actions from the governance bodies of both chains.

Summary

We propose to open a bi-directional channel between Acala and Astar Network. The two primary use cases will be:

  1. To transfer Acala’s assets to Astar Network so they can be privatized and transferred confidentially and anonymously.
  2. Astar Network ASTR token can be transferred to Acala to open new DEX pairs and integrate with Acala’s suite of DeFi products.

Proposal

There is no on-chain proposal yet; #TBD.

Technical details:

The procedure for opening the channels is as follows:

  1. Acala: democracy proposal to open the Acala to Astar Network HRMP channel
  2. Astar Network: Astar root MultiSig batched proposal to
    • Accept Acala to Astar Network HRMP channel
    • Open Astar Network to Acala HRMP channel
    • Register ACA & aUSD assets as XC20s
  3. Acala: democracy proposal to accept Astar Network to Acala HRMP channel
  4. Polkadot: wait for one session after each acceptance for each channel to be opened
  5. XCM based cross-chain transfer will be possible at this stage

The extrinsics that need to be executed on the relay chain , are:

  • For step 1: hrmp.hrmpInitOpenChannel(recipient: 2006, proposedMaxCapacity: 1000, proposedMaxMessageSize: 102400) , which its hex-encoded call data is 0x3c00d4070000e803000000900100
  • For step 2 (open channel to Acala): hrmp.hrmpInitOpenChannel(recipient: 2000, proposedMaxCapacity: 1000, proposedMaxMessageSize: 102400) , which its hex-encoded call data is 0x3c00d0070000e803000000900100
  • For step 2 (accept channel from Acala): hrmp.hrmpAcceptOpenChannel(sender: 2000) , which hex-encoded call data is 0x3c01d0070000
  • For step 3: hrmp.hrmpAcceptOpenChannel(sender: 2006) , which its hex-encoded call data is 0x3c01d4070000

The proposedMaxCapacity and proposedMaxMessageSize **are set to the values of Polkadot’s 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 polkadot-xcm 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

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

7 Likes

And another one ! Good news for Astar, not waiting like 1 lease period like Shiden :sweat_smile: