# HRMP Channel
Steps to open HRMP channels:
1. Sender parachain send a init open channel request.
2. Recipient parachain accept request.
The steps above are done via `Xcm::Transact` from the sender's or recipient's part.
## Send init open channel request
### Get encoded transact
In PolkadotJS app, switch to the relay chain network. Go to **Developer -> Extrinsics** section.
Go to `hrmp.initOpenChannel`, fill parameters and copy the *encoded call data* below:

### Send request
Go to PolkadotJS app, switch to sender parachain. Go to **Developer -> Sudo** section.
Use `ormlXcm.sendAsSovereign` to send the XCM message. Note that:
- Fees `debit` and `weight` in this demo are based on rococo local. Kusama could be different.
- Replace the deposit account ID with parachain sovereign account ID.


Check out network explorer about the message execution result.

To confirm the request was sent, switch to live Rococo, go to **Developer -> Chain State**, check **hrmp -> hrmpOpenChannelRequests**.
## Accept channel request
### Get encoded transact
In PolkadotJS app, switch to the relay chain network. Go to **Developer -> Extrinsics** section.
Go to `hrmp.hrmpAcceptOpenChannel`, fill parameters and copy the *encoded call data* below:

### Accept request
Go to PolkadotJS app, switch to sender parachain. Go to **Developer -> Sudo** section.
Use `ormlXcm.sendAsSovereign` to send the XCM message. Note that:
- Fees `debit` and `weight` in this demo are based on rococo local. Kusama could be different.
- Replace the deposit account ID with parachain sovereign account ID.


Check out network explorer about the message execution result.
