---
title: IBC-Go v7 to v7.1
sidebar_label: IBC-Go v7 to v7.1
sidebar_position: 9
slug: /migrations/v7-to-v7_1
---
# Migrating from v7 to v7.1

This guide provides instructions for migrating to version `v7.1.0` of ibc-go.

There are four sections based on the four potential user groups of this document:

- [Migrating from v7 to v7.1](#migrating-from-v7-to-v71)
    - [Chains](#chains)
    - [IBC Apps](#ibc-apps)
    - [Relayers](#relayers)
    - [IBC Light Clients](#ibc-light-clients)

**Note:** ibc-go supports golang semantic versioning and therefore all imports must be updated on major version releases.

## Chains

### 09-localhost migration

In the previous release of ibc-go, the localhost `v1` light client module was deprecated and removed. The ibc-go `v7.1.0` release introduces `v2` of the 09-localhost light client module.

An [automatic migration handler](https://github.com/cosmos/ibc-go/blob/v7.2.0/modules/core/module.go#L127-L145) is configured in the core IBC module to set the localhost `ClientState` and sentinel `ConnectionEnd` in state.

In order to use the 09-localhost client chains must update the `AllowedClients` parameter in the 02-client submodule of core IBC. This can be configured directly in the application upgrade handler or alternatively updated via the legacy governance parameter change proposal.
We **strongly** recommend chains to perform this action so that intra-ledger communication can be carried out using the familiar IBC interfaces.

See the upgrade handler code sample provided below or [follow this link](https://github.com/cosmos/ibc-go/blob/v7.2.0/testing/simapp/upgrades/upgrades.go#L85) for the upgrade handler used by the ibc-go simapp.

```go
func CreateV7LocalhostUpgradeHandler(
  mm *module.Manager,
  configurator module.Configurator,
  clientKeeper clientkeeper.Keeper,
) upgradetypes.UpgradeHandler {
  return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
    // explicitly update the IBC 02-client params, adding the localhost client type
    params := clientKeeper.GetParams(ctx)
    params.AllowedClients = append(params.AllowedClients, exported.Localhost)
    clientKeeper.SetParams(ctx, params)

    return mm.RunMigrations(ctx, configurator, vm)
  }
}
```

### Transfer migration

An [automatic migration handler](https://github.com/cosmos/ibc-go/blob/v7.2.0/modules/apps/transfer/module.go#L111-L113) is configured in the transfer module to set the total amount in escrow for all denominations of coins that have been sent out. For each denomination a state entry is added with the total amount of coins in escrow regardless of the channel from which they were transferred.

## IBC Apps

- No relevant changes were made in this release.

## Relayers

The event attribute `packet_connection` (`connectiontypes.AttributeKeyConnection`) has been deprecated. 
Please use the `connection_id` attribute (`connectiontypes.AttributeKeyConnectionID`) which is emitted by all channel events.
Only send packet, receive packet, write acknowledgement, and acknowledge packet events used `packet_connection` previously.

## IBC Light Clients

- No relevant changes were made in this release.
