> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cosmos.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Release history and changelog for Cosmos IBC

<Info>
  This page tracks all releases and changes from the [cosmos/ibc-go](https://github.com/cosmos/ibc-go) repository.
  For the latest development updates, see the [UNRELEASED](https://github.com/cosmos/ibc-go/blob/main/CHANGELOG.md#unreleased) section.
</Info>

<Update label="2023-10-20" description="v4.5.1" tags={["IBC", "Release"]}>
  ## Bug Fixes

  * (apps/transfer) [#3045](https://github.com/cosmos/ibc-go/pull/3045) allow value with slashes in URL template for `denom_traces` and `denom_hashes` queries.
  * (apps/transfer) [#4709](https://github.com/cosmos/ibc-go/pull/4709) Order query service RPCs to fix availability of denom traces endpoint when no args are provided.
</Update>

<Update label="2023-10-03" description="v4.5.0" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#4738](https://github.com/cosmos/ibc-go/pull/4738) Bump Cosmos SDK to v0.45.16.
  * [#4782](https://github.com/cosmos/ibc-go/pull/4782) Bump ics23 to v0.9.1.
</Update>

<Update label="2023-10-20" description="v4.4.3" tags={["IBC", "Release"]}>
  ## Bug Fixes

  * (apps/transfer) [#3045](https://github.com/cosmos/ibc-go/pull/3045) allow value with slashes in URL template for `denom_traces` and `denom_hashes` queries.
  * (apps/transfer) [#4709](https://github.com/cosmos/ibc-go/pull/4709) Order query service RPCs to fix availability of denom traces endpoint when no args are provided.
</Update>

<Update label="2023-05-25" description="v4.4.2" tags={["IBC", "Release"]}>
  ## Bug Fixes

  * [#3662](https://github.com/cosmos/ibc-go/pull/3662) Retract v4.1.2 and v4.2.1.
</Update>

<Update label="2023-05-25" description="v4.4.1" tags={["IBC", "Release"]}>
  ## Bug Fixes

  * [#3346](https://github.com/cosmos/ibc-go/pull/3346) Properly handle ordered channels in `UnreceivedPackets` query.
</Update>

<Update label="2023-04-25" description="v4.4.0" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#3416](https://github.com/cosmos/ibc-go/pull/3416) Bump Cosmos SDK to v0.45.15 and replace Tendermint with CometBFT v0.34.27.
</Update>

<Update label="2023-05-25" description="v4.3.1" tags={["IBC", "Release"]}>
  ## Bug Fixes

  * [#3346](https://github.com/cosmos/ibc-go/pull/3346) Properly handle ordered channels in `UnreceivedPackets` query.
</Update>

<Update label="2023-01-24" description="v4.3.0" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#3049](https://github.com/cosmos/ibc-go/pull/3049) Bump Cosmos SDK to v0.45.12.
  * [#2868](https://github.com/cosmos/ibc-go/pull/2868) Bump ics23 to v0.9.0.

  ## State Machine Breaking

  * (core/04-channel) [#2973](https://github.com/cosmos/ibc-go/pull/2973) Write channel state before invoking app callbacks in ack and confirm channel handshake steps.

  ## Improvements

  * (apps/29-fee) [#2786](https://github.com/cosmos/ibc-go/pull/2786) Save gas on `IsFeeEnabled`.

  ## Bug Fixes

  * (apps/29-fee) [#2942](https://github.com/cosmos/ibc-go/pull/2942) Check `x/bank` send enabled before escrowing fees.

  ## Documentation

  * [#2737](https://github.com/cosmos/ibc-go/pull/2737) Fix migration/docs for ICA controller middleware.

  ## Miscellaneous Tasks

  * [#2772](https://github.com/cosmos/ibc-go/pull/2772) Integrated git cliff into the code base to automate generation of changelogs.
</Update>

<Update label="2023-05-25" description="v4.2.2" tags={["IBC", "Release"]}>
  ## Bug Fixes

  * [#3661](https://github.com/cosmos/ibc-go/pull/3661) Revert state-machine breaking improvement from PR [#2786](https://github.com/cosmos/ibc-go/pull/2786).
</Update>

<Update label="2023-05-25" description="v4.2.1" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#2868](https://github.com/cosmos/ibc-go/pull/2868) Bump ICS 23 to v0.9.0.

  ## Improvements

  * (apps/29-fee) [#2786](https://github.com/cosmos/ibc-go/pull/2786) Save gas by checking key existence with `KVStore`'s `Has` method.

  ## Bug Fixes

  * [#3346](https://github.com/cosmos/ibc-go/pull/3346) Properly handle ordered channels in `UnreceivedPackets` query.
</Update>

<Update label="2022-11-07" description="v4.2.0" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#2588](https://github.com/cosmos/ibc-go/pull/2588) Bump SDK version to v0.45.10 and Tendermint to v0.34.22.

  ## State Machine Breaking

  * (apps/transfer) [#2651](https://github.com/cosmos/ibc-go/pull/2651) Introduce `mustProtoMarshalJSON` for ics20 packet data marshalling which will skip emission (marshalling) of the memo field if unpopulated (empty).
  * (27-interchain-accounts) [#2590](https://github.com/cosmos/ibc-go/pull/2590) Removing port prefix requirement from the ICA host channel handshake
  * (transfer) [#2377](https://github.com/cosmos/ibc-go/pull/2377) Adding `sequence` to `MsgTransferResponse`.

  ## Features

  * (apps/transfer) [#2595](https://github.com/cosmos/ibc-go/pull/2595) Adding optional memo field to `FungibleTokenPacketData` and `MsgTransfer`.

  ## Bug Fixes

  * (apps/transfer) [#2679](https://github.com/cosmos/ibc-go/pull/2679) Check `x/bank` send enabled.
</Update>

<Update label="2023-05-25" description="v4.1.3" tags={["IBC", "Release"]}>
  ## Bug Fixes

  * [#3660](https://github.com/cosmos/ibc-go/pull/3660) Revert state-machine breaking improvement from PR [#2786](https://github.com/cosmos/ibc-go/pull/2786).
</Update>

<Update label="2023-05-25" description="v4.1.2" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#2868](https://github.com/cosmos/ibc-go/pull/2868) Bump ICS 23 to v0.9.0.

  ## Improvements

  * (apps/29-fee) [#2786](https://github.com/cosmos/ibc-go/pull/2786) Save gas by checking key existence with `KVStore`'s `Has` method.

  ## Bug Fixes

  * [#3346](https://github.com/cosmos/ibc-go/pull/3346) Properly handle ordered channels in `UnreceivedPackets` query.
</Update>

<Update label="2022-10-27" description="v4.1.1" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#2624](https://github.com/cosmos/ibc-go/pull/2624) Bump SDK version to v0.45.10 and Tendermint to v0.34.22.
</Update>

<Update label="2022-09-20" description="v4.1.0" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#2288](https://github.com/cosmos/ibc-go/pull/2288) Bump SDK version to v0.45.8 and Tendermint to v0.34.21.

  ## Features

  * (apps/27-interchain-accounts) [#2193](https://github.com/cosmos/ibc-go/pull/2193) Adding `InterchainAccount` gRPC query endpoint to ICS27 `controller` submodule to allow users to retrieve registered interchain account addresses.

  ## Bug Fixes

  * (27-interchain-accounts) [#2308](https://github.com/cosmos/ibc-go/pull/2308) Nil checks have been added to ensure services are not registered for nil host or controller keepers.
</Update>

<Update label="2022-09-15" description="v4.0.1" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#2287](https://github.com/cosmos/ibc-go/pull/2287) Bump SDK version to v0.45.8 and Tendermint to v0.34.21.
</Update>

<Update label="2022-08-12" description="v4.0.0" tags={["IBC", "Release"]}>
  ## Dependencies

  * [#1627](https://github.com/cosmos/ibc-go/pull/1627) Bump Go version to 1.18
  * [#1905](https://github.com/cosmos/ibc-go/pull/1905) Bump SDK version to v0.45.7

  ## API Breaking

  * (core/04-channel) [#1792](https://github.com/cosmos/ibc-go/pull/1792) Remove `PreviousChannelID` from `NewMsgChannelOpenTry` arguments. `MsgChannelOpenTry.ValidateBasic()` returns error if the deprecated `PreviousChannelID` is not empty.
  * (core/03-connection) [#1797](https://github.com/cosmos/ibc-go/pull/1797) Remove `PreviousConnectionID` from `NewMsgConnectionOpenTry` arguments. `MsgConnectionOpenTry.ValidateBasic()` returns error if the deprecated `PreviousConnectionID` is not empty.
  * (modules/core/03-connection) [#1672](https://github.com/cosmos/ibc-go/pull/1672) Remove crossing hellos from connection handshakes. The `PreviousConnectionId` in `MsgConnectionOpenTry` has been deprecated.
  * (modules/core/04-channel) [#1317](https://github.com/cosmos/ibc-go/pull/1317) Remove crossing hellos from channel handshakes. The `PreviousChannelId` in `MsgChannelOpenTry` has been deprecated.
  * (transfer) [#1250](https://github.com/cosmos/ibc-go/pull/1250) Deprecate `GetTransferAccount` since the `transfer` module account is never used.
  * (channel) [#1283](https://github.com/cosmos/ibc-go/pull/1283) The `OnChanOpenInit` application callback now returns a version string in line with the latest [spec changes](https://github.com/cosmos/ibc/pull/629).
  * (modules/29-fee)[#1338](https://github.com/cosmos/ibc-go/pull/1338) Renaming `Result` field in `IncentivizedAcknowledgement` to `AppAcknowledgement`.
  * (modules/29-fee)[#1343](https://github.com/cosmos/ibc-go/pull/1343) Renaming `KeyForwardRelayerAddress` to `KeyRelayerAddressForAsyncAck`, and `ParseKeyForwardRelayerAddress` to `ParseKeyRelayerAddressForAsyncAck`.
  * (apps/27-interchain-accounts)[#1432](https://github.com/cosmos/ibc-go/pull/1432) Updating `RegisterInterchainAccount` to include an additional `version` argument, supporting ICS29 fee middleware functionality in ICS27 interchain accounts.
  * (apps/27-interchain-accounts)[#1565](https://github.com/cosmos/ibc-go/pull/1565) Removing `NewErrorAcknowledgement` in favour of `channeltypes.NewErrorAcknowledgement`.
  * (transfer)[#1565](https://github.com/cosmos/ibc-go/pull/1565) Removing `NewErrorAcknowledgement` in favour of `channeltypes.NewErrorAcknowledgement`.
  * (channel)[#1565](https://github.com/cosmos/ibc-go/pull/1565) Updating `NewErrorAcknowledgement` to accept an error instead of a string and removing the possibility of non-deterministic writes to application state.
  * (core/04-channel)[#1636](https://github.com/cosmos/ibc-go/pull/1636) Removing `SplitChannelVersion` and `MergeChannelVersions` functions since they are not used.

  ## State Machine Breaking

  * (apps/transfer) [#1907](https://github.com/cosmos/ibc-go/pull/1907) Blocked module account addresses are no longer allowed to send IBC transfers.
  * (apps/27-interchain-accounts) [#1882](https://github.com/cosmos/ibc-go/pull/1882) Explicitly check length of interchain account packet data in favour of nil check.

  ## Improvements

  * (app/20-transfer) [#1680](https://github.com/cosmos/ibc-go/pull/1680) Adds migration to correct any malformed trace path information of tokens with denoms that contains slashes. The transfer module consensus version has been bumped to 2.
  * (app/20-transfer) [#1730](https://github.com/cosmos/ibc-go/pull/1730) parse the ics20 denomination provided via a packet using the channel identifier format specified by ibc-go.
  * (cleanup) [#1335](https://github.com/cosmos/ibc-go/pull/1335/) `gofumpt -w -l .` to standardize the code layout more strictly than `go fmt ./...`
  * (middleware) [#1022](https://github.com/cosmos/ibc-go/pull/1022) Add `GetAppVersion` to the ICS4Wrapper interface. This function should be used by IBC applications to obtain their own version since the version set in the channel structure may be wrapped many times by middleware.
  * (modules/core/04-channel) [#1232](https://github.com/cosmos/ibc-go/pull/1232) Updating params on `NewPacketId` and moving to bottom of file.
  * (app/29-fee) [#1305](https://github.com/cosmos/ibc-go/pull/1305) Change version string for fee module to `ics29-1`
  * (app/29-fee) [#1341](https://github.com/cosmos/ibc-go/pull/1341) Check if the fee module is locked and if the fee module is enabled before refunding all fees
  * (transfer) [#1414](https://github.com/cosmos/ibc-go/pull/1414) Emitting Sender address from `fungible_token_packet` events in `OnRecvPacket` and `OnAcknowledgementPacket`.
  * (testing/simapp) [#1397](https://github.com/cosmos/ibc-go/pull/1397) Adding mock module to maccperms and adding check to ensure mock module is not a blocked account address.
  * (core/02-client) [#1570](https://github.com/cosmos/ibc-go/pull/1570) Emitting an event when handling an upgrade client proposal.
  * (modules/light-clients/07-tendermint) [#1713](https://github.com/cosmos/ibc-go/pull/1713) Allow client upgrade proposals to update `TrustingPeriod`. See ADR-026 for context.
  * (core/client) [#1740](https://github.com/cosmos/ibc-go/pull/1740) Add `cosmos_proto.implements_interface` to adhere to guidelines in [Cosmos SDK ADR 019](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-019-protobuf-state-encoding.md#safe-usage-of-any) for annotating `google.protobuf.Any` types

  ## Features

  * [#276](https://github.com/cosmos/ibc-go/pull/276) Adding the Fee Middleware module v1
  * (apps/29-fee) [#1229](https://github.com/cosmos/ibc-go/pull/1229) Adding CLI commands for getting all unrelayed incentivized packets and packet by packet-id.
  * (apps/29-fee) [#1224](https://github.com/cosmos/ibc-go/pull/1224) Adding Query/CounterpartyAddress and CLI to ICS29 fee middleware
  * (apps/29-fee) [#1225](https://github.com/cosmos/ibc-go/pull/1225) Adding Query/FeeEnabledChannel and Query/FeeEnabledChannels with CLIs to ICS29 fee middleware.
  * (modules/apps/29-fee) [#1230](https://github.com/cosmos/ibc-go/pull/1230) Adding CLI command for getting incentivized packets for a specific channel-id.

  ## Bug Fixes

  * (apps/29-fee) [#1774](https://github.com/cosmos/ibc-go/pull/1774) Change non nil relayer assertion to non empty to avoid import/export issues for genesis upgrades.
  * (apps/29-fee) [#1278](https://github.com/cosmos/ibc-go/pull/1278) The URI path for the query to get all incentivized packets for a specific channel did not follow the same format as the rest of queries.
  * (modules/core/04-channel)[#1919](https://github.com/cosmos/ibc-go/pull/1919) Fixed formatting of sequence for packet "acknowledgement written" logs.
</Update>
