Open HRMP channels between Genshiro and Karura


We propose to open HRMP communication between Genshiro and Karura.


We propose to open a bi-directional channel between Genshiro and Karura. This will allow the following:

  1. Supply KAR as collateral and borrow assets such as WBTC, WETH, BNB, USDT, USDC, DAI, KSM against it with collateralization requirements as low as 120%
  2. Supply KAR as insurance / lending liquidity, contribute to the system solvency, earn interest payable by borrowers, absorb liquidated liquidity and earn 5% rewards (penalty) on liquidated amounts.
  3. Add KAR to Market Maker pools, achieve 200K USD target both in KAR and EQD (you can mint EQD agains KAR) and we will launch a new trading pair KAR / EQD on Genshiro DEX!


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

Technical details:

The procedure for opening the channels is as follows:

  1. Karura propose to request to open Karura to Genshiro HRMP channel;
  2. Wait until proposal on step 1 get approved & enacted;
  3. Genshiro propose to accept the request and request to open Composable Picasso to Karura HRMP channel(Batch call);
  4. Wait until proposal on step 3 get approved & enacted;
  5. Karura propose to accept Genshiro to Karura HRMP channel;
  6. Wait until proposals on step 5 are approved & enacted;
  7. Wait for another session on Kusama for the change to be effective;
  8. Genshiro proposes to register Karura’s assets (KAR, kUSD, LKSM) via [Genshiro Governance];
  9. Karura proposes to register Genshiro’s assets (GENS, EQD) via [Karura Governance];
  10. Wait until both proposals on step 9 & 10 are approved & enacted;
  11. XCM based crosschain transfer will be possible at this stage.

The extrinsics that need to be sent with xcm messages to they can be executed on the relay chain, are:

  • For step 1:
    hrmp.hrmpInitOpenChannel(recipient: 2000, proposedMaxCapacity: 1000, proposedMaxMessageSize: 102400) , which hex-encoded is 0x3c00d0070000e803000000900100
  • For step 3:
    The first call is hrmp.hrmpAcceptOpenChannel(sender: 2024) , second call is hrmp.hrmpInitOpenChannel(recipient: 2024, proposedMaxCapacity: 1000, proposedMaxMessageSize: 102400) , so the final batch call hex-encoded is 0x1800083c01e80700003c00e8070000e803000000900100
  • For step 5: hrmp.hrmpAcceptOpenChannel(sender: 2000) , which hex-encoded is 0x3c01d0070000

The proposedMaxCapacity and proposedMaxMessageSize are set to the values of Kusama’s configuration.activeConfig.hrmpChannelMaxCapacity and configuration.activeConfig.hrmpChannelMaxMessageSize values, respectively.

These extrinsics need to be called with the parachain’s sovereign account as origin. To achieve this, on the Genshiro side we will use polkadotXcm pallet to send xcm message to the relaychain, by executing the following extrinsic from the parachain. Karura should make an open request call and an accept request call with its ormlXcm pallet.

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

1 Like

Hardly a pass with a chain having only 2 commits…

1 Like