---
title: "ChannelUpgradeInit defines a rpc handler method for MsgChannelUpgradeInit."
method: POST
path: "/ibc.core.channel.v1.Msg/ChannelUpgradeInit"
tags: ["Msg"]
---

# ChannelUpgradeInit defines a rpc handler method for MsgChannelUpgradeInit.

`POST /ibc.core.channel.v1.Msg/ChannelUpgradeInit`

## Request body

- IbcCoreChannelV1MsgChannelUpgradeInit — MsgChannelUpgradeInit defines the request type for the ChannelUpgradeInit rpc WARNING: Initializing a channel upgrade in the same block as opening the channel may result in the counterparty being incapable of opening.
  - `channel_id` string
  - `fields` IbcCoreChannelV1UpgradeFields — UpgradeFields are the fields in a channel end which may be changed during a channel upgrade.
    - `connection_hops` string[]
    - `ordering` 'ORDER_NONE_UNSPECIFIED' | 'ORDER_UNORDERED' | 'ORDER_ORDERED' — - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in which they were sent. - ORDER_ORDERED: packets are delivered exactly in the order which they were sent
    - `version` string
  - `port_id` string
  - `signer` string

## Response `200`

A successful response.

- IbcCoreChannelV1MsgChannelUpgradeInitResponse
  - `upgrade` IbcCoreChannelV1Upgrade — Upgrade is a verifiable type which contains the relevant information for an attempted upgrade. It provides the proposed changes to the channel end, the timeout for this upgrade attempt and the next packet sequence which allows the counterparty to efficiently know the highest sequence it has received. The next sequence send is used for pruning and upgrading from unordered to ordered channels.
    - `fields` IbcCoreChannelV1UpgradeFields — UpgradeFields are the fields in a channel end which may be changed during a channel upgrade.
      - `connection_hops` string[]
      - `ordering` 'ORDER_NONE_UNSPECIFIED' | 'ORDER_UNORDERED' | 'ORDER_ORDERED' — - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in which they were sent. - ORDER_ORDERED: packets are delivered exactly in the order which they were sent
      - `version` string
    - `next_sequence_send` string, uint64
    - `timeout` IbcCoreChannelV1Timeout — Timeout defines an execution deadline structure for 04-channel handlers. This includes packet lifecycle handlers as well as the upgrade handshake handlers. A valid Timeout contains either one or both of a timestamp and block height (sequence).
      - `height` IbcCoreClientV1Height — Normally the RevisionHeight is incremented at each height while keeping RevisionNumber the same. However some consensus algorithms may choose to reset the height in certain conditions e.g. hard forks, state-machine breaking changes In these cases, the RevisionNumber is incremented so that height continues to be monitonically increasing even as the RevisionHeight gets reset
        - `revision_height` string, uint64
        - `revision_number` string, uint64
      - `timestamp` string, uint64
  - `upgrade_sequence` string, uint64

## Other responses

- `default` — An unexpected error response.

## Changes

- **2024-08-14** `21c607e4fa20` — 1 info
  - endpoint added
- **2024-07-31** `19416a3f0cd1` — 1 breaking
  - api path removed without deprecation
- **2024-07-11** `ca7e84576c8e` — 1 info
  - endpoint added
- **2024-05-15** `41fb8b09e244` — 1 breaking
  - api path removed without deprecation
- **2024-03-06** `0ded0c5649f1` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pokt-network/apis/http-api-console/changes/ibc.core.channel.v1.Msg/ChannelUpgradeInit/post.md)

---

[API](https://skmtc.dev/pokt-network/apis/http-api-console.md) · [All operations](https://skmtc.dev/pokt-network/apis/http-api-console/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pokt-network/http-api-console/revisions/de0653d8a73d/schema)
