Skip to main content

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.

This guide assumes that your chain is already using ibc-go v11.0 and is upgrading to ibc-go v11.1. If you are upgrading directly from ibc-go v10 to ibc-go v11.1, see the migration guide for v10 to v11.

Packet Forward Middleware

Packet Forward Middleware (PFM) has been moved from cosmos/ibc-apps to ibc-go in this release. PFM is now available under modules/apps/packet-forward-middleware. This guide assumes that your chain has not previously integrated PFM from ibc-apps. If your chain already uses PFM from ibc-apps, follow the migration guide for v10 to v11, which includes guidance for preserving existing PFM state. If you want to enable PFM, first follow the integration instructions.

Add StoreUpgrades for the PFM module

If PFM is being added to an existing chain, you must manually add store upgrades for the new PFM module and configure the store loader to apply those upgrades in app.go:
if upgradeInfo.Name == "v11_1" && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
  storeUpgrades := store.StoreUpgrades{
    Added: []string{packetforwardtypes.StoreKey},
  }

  app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
}
This ensures that the new module’s stores are added to the multistore before the migrations begin. If a chain does not integrate PFM, it does not need to add the PFM key to the Added field.
The PFM module name and store key intentionally preserve the original packetfowardmiddleware spelling for compatibility with the legacy implementation.