> ## 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.

# Upgrade history

> For operators and researchers who need to know which gaia binary ran cosmoshub-4 at a given height, this page lists every upgrade since genesis with its pattern and source.

Reviewed against gaia v28.3.1 (Cosmos SDK v0.53.4, CometBFT v0.38.23) on 2026-10-15.

The `cosmoshub-4` chain launched on 2021-02-18 at height 5200791 (the genesis file carries the `cosmoshub-3` date of 2019-12-11 in `genesis_time`) on gaia v4.2.1. It has been upgraded in place ever since. This table says which binary applied which heights. Operators need it to replay history (an archive node built from genesis must switch binaries at every row), to interpret old state, and to see how upgrades are run on the Hub. The process is on [Upgrade a node](https://docs.cosmos.network/hub/latest/hub-tutorials/upgrade-node.md).

## How to read the table

Governance rows come from the passed `MsgSoftwareUpgrade` proposals on chain, checked on 2026-10-15 through the governance REST API (`/cosmos/gov/v1/proposals`). Each is linked to the proposal on Mintscan. Halt-height rows come from gaia release notes. They have no on-chain plan, so `gaiad query upgrade applied <name>` returns nothing for them. The binary column names the release line. Where more than one patch could have been in use at that height and the notes do not pin one, the row says so. Heights are the first block produced by the new binary.

Some rows hide a detour. The patches at heights 32830000 and 33086740 first reached validators privately, under the version numbers v28.1.0 and v28.3.0, before the public tags v28.1.1 and v28.3.1 were published. The binary column always names the public tag whose release notes cover that height, so a node replaying from genesis uses the public tags only. Security patches applied as rolling upgrades, with no coordinated height, have no row: v7.1.0 (Dragonberry, 2022-10), v7.1.1, v8.0.1, v9.1.1 (Huckleberry), v25.1.1, and v25.3.1. The v25.3.1 release notes say the fix is not in the tagged commit, so use the release binary rather than a source build if you ever need that version.

To check a governance row yourself:

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
gaiad query upgrade applied v28.2.0
curl -s https://cosmos-rest.publicnode.com/cosmos/upgrade/v1beta1/applied_plan/v28.2.0
```

The REST call returned `{"height":"33073000"}` on 2026-10-15. The CLI prints the block header at that height on a node that keeps it.

## Upgrades on cosmoshub-4

| Height | Plan or release | Binary | Pattern | Source |
| - | - | - | - | - |
| 5200791 | Genesis | v4.2.1 | Chain start, 2021-02-18 | [cosmos/mainnet](https://github.com/cosmos/mainnet) |
| 6910000 | Gravity-DEX | v5.0.x | Governance, [proposal 51](https://www.mintscan.io/cosmos/proposals/51), voting ended 2021-07-12 | on chain |
| 8695000 | Vega | v6.0.x | Governance, [proposal 59](https://www.mintscan.io/cosmos/proposals/59), 2021-12-13 | on chain |
| 10085397 | v7-Theta | v7.0.x | Governance, [proposal 65](https://www.mintscan.io/cosmos/proposals/65), 2022-04-08 | on chain |
| 14099412 | v8-Rho | v8.0.x | Governance, [proposal 97](https://www.mintscan.io/cosmos/proposals/97), 2023-02-14 | on chain |
| 14470501 | v9-Lambda | v9.0.x | Governance, [proposal 187](https://www.mintscan.io/cosmos/proposals/187), 2023-03-07 | on chain |
| 15213800 | v9.1.0 | v9.1.0 | Halt height, emergency, 2023-05 | release notes |
| 15816200 | v10 | v10.0.x | Governance, [proposal 798](https://www.mintscan.io/cosmos/proposals/798), 2023-06-16 | on chain |
| 16596000 | v11 | v11.0.x | Governance, [proposal 804](https://www.mintscan.io/cosmos/proposals/804), 2023-08-10 | on chain |
| 16985500 | v12 | v12.0.x | Governance, [proposal 821](https://www.mintscan.io/cosmos/proposals/821), 2023-09-08 | on chain |
| 17380000 | v13 | v13.0.x | Governance, [proposal 825](https://www.mintscan.io/cosmos/proposals/825), 2023-10-06 | on chain |
| 18262000 | v14 | v14.1.0 | Governance, [proposal 854](https://www.mintscan.io/cosmos/proposals/854), 2023-12-08 | on chain |
| 19460500 | v14.2.0 | v14.2.0 | Halt height, emergency | release notes; exact date not verified |
| 19639600 | v15 | v15.1.0 | Governance, [proposal 885](https://www.mintscan.io/cosmos/proposals/885), 2024-03-15 | on chain |
| 19939000 | v15.2.0 | v15.2.0 | Halt height | previous version of this page; not re-verified |
| 20440500 | v16 | v16.0.x | Governance, [proposal 914](https://www.mintscan.io/cosmos/proposals/914), 2024-05-10 | on chain |
| 20739800 | v17 | v17.x | Governance, [proposal 924](https://www.mintscan.io/cosmos/proposals/924), 2024-05-31 | on chain; patch in use not verified |
| 21330500 | v18 | v18.1.0 | Governance, [proposal 937](https://www.mintscan.io/cosmos/proposals/937), 2024-07-15 | on chain |
| 21835200 | v19 | v19.1.0 | Governance, [proposal 948](https://www.mintscan.io/cosmos/proposals/948), 2024-08-16 | on chain |
| 22051400 | v19.2.0 | v19.2.0 | Halt height, mandatory, 2024-09-05 | release notes |
| 22443500 | v20 | v20.0.0 | Governance, [proposal 966](https://www.mintscan.io/cosmos/proposals/966), 2024-09-27 | on chain |
| 22953640 | v21 | v21.0.x | Governance, [proposal 971](https://www.mintscan.io/cosmos/proposals/971), 2024-11-01 | on chain |
| 24181000 | v22 | v22.0.x | Governance, [proposal 987](https://www.mintscan.io/cosmos/proposals/987), 2025-01-24 | on chain |
| 24592000 | v22.2.0 | v22.2.0 | Governance, [proposal 988](https://www.mintscan.io/cosmos/proposals/988), 2025-02-21 | on chain |
| 25002500 | v23 | v23.0.x | Governance, [proposal 992](https://www.mintscan.io/cosmos/proposals/992), 2025-03-25 | on chain |
| 25602300 | v23.2.0 | v23.2.0 | Governance, [proposal 995](https://www.mintscan.io/cosmos/proposals/995), 2025-05-06 | on chain |
| 25734200 | v23.3.0 | v23.3.0 | Governance, [proposal 997](https://www.mintscan.io/cosmos/proposals/997), 2025-05-13 | on chain |
| 26131400 | v24 | v24.0.x | Governance, [proposal 1000](https://www.mintscan.io/cosmos/proposals/1000), 2025-06-06 | on chain |
| 26440900 | v25.0.0 | v25.0.0 | Governance, [proposal 1003](https://www.mintscan.io/cosmos/proposals/1003), 2025-06-30 | on chain; replaced the LSM validator bond with x/liquid |
| 26659700 | v25.1.0 | v25.1.0 | Governance, [proposal 1004](https://www.mintscan.io/cosmos/proposals/1004), 2025-07-16 | on chain |
| 28356500 | v25.2.0 | v25.2.0 | Governance, [proposal 1016](https://www.mintscan.io/cosmos/proposals/1016), 2025-11-09 | on chain |
| 29288700 | v25.3.0 | v25.3.0 | Governance, [proposal 1021](https://www.mintscan.io/cosmos/proposals/1021), 2026-01-09 | on chain |
| 29837600 | v26.0.0 | v26.0.0 | Governance, [proposal 1024](https://www.mintscan.io/cosmos/proposals/1024), 2026-02-16 | on chain |
| 30151300 | v27.0.0 | v27.0.0 | Governance, [proposal 1025](https://www.mintscan.io/cosmos/proposals/1025), 2026-03-10 | on chain |
| 30466800 | v27.1.0 | v27.1.0 | Governance, [proposal 1026](https://www.mintscan.io/cosmos/proposals/1026), 2026-03-31 | on chain |
| 30675400 | v27.2.0 | v27.2.0 | Governance, [proposal 1028](https://www.mintscan.io/cosmos/proposals/1028), 2026-04-14 | on chain |
| 31201200 | v27.3.0 | v27.3.0 | Governance, [proposal 1035](https://www.mintscan.io/cosmos/proposals/1035), 2026-05-19 | on chain |
| 31517100 | v27.4.0 | v27.4.0 | Governance, [proposal 1041](https://www.mintscan.io/cosmos/proposals/1041), 2026-06-09 | on chain |
| 31938700 | v27.5.0 | v27.5.0 | Governance, [proposal 1044](https://www.mintscan.io/cosmos/proposals/1044), 2026-07-07 | on chain |
| 32361600 | v27.6.0 | v27.6.0 | Governance, [proposal 1049](https://www.mintscan.io/cosmos/proposals/1049), 2026-08-04 | on chain |
| 32785900 | v28.0.0 | v28.0.0 | Governance, [proposal 1052](https://www.mintscan.io/cosmos/proposals/1052), 2026-09-01 | on chain; removed the Interchain Security provider module |
| 32830000 | v28.1.1 | v28.1.1 | Halt height | [v28.1.1 release notes](https://github.com/cosmos/gaia/releases/tag/v28.1.1) |
| 33073000 | v28.2.0 | v28.2.1 | Governance, [proposal 1055](https://www.mintscan.io/cosmos/proposals/1055), 2026-09-20 | on chain; the v28.2.0 tag was withdrawn and v28.2.1 carries the handler |
| 33086740 | v28.3.1 | v28.3.1 | Halt height | [v28.2.1 release notes](https://github.com/cosmos/gaia/releases/tag/v28.2.1) |

Dates in the pattern column are the day voting ended, not the day the height was reached. The upgrade height usually fell a few days later. The [chain registry versions file](https://github.com/cosmos/chain-registry/blob/master/cosmoshub/versions.json) carries the same sequence with the Cosmos SDK, CometBFT, and ibc-go version of each release. It lagged the chain by one release on 2026-10-15 (it still named v28.0.0 as recommended).

## Replay history

A node that must build the full history from genesis switches binaries at every row above, with a Go toolchain old enough for each release. It also replays every migration. Nobody does this to run a node. Restore an archive snapshot instead, as on [Sync a node](https://docs.cosmos.network/hub/latest/node/sync.md). The table is what you need when you are asked which binary produced a block, or when you export state at an old height with `gaiad export --height <height>` on the matching binary.

The current binary carries the handler for the most recent governance upgrade only: `app/upgrades` in gaia v28.3.1 contains `v28_2_0`. A v28.3.1 node cannot apply any earlier upgrade height. That is why old binaries are kept on the releases page and why the rows above matter.

## Earlier chains

| Chain-id | Ran | Final gaia | Notes |
| - | - | - | - |
| cosmoshub-3 | 2019-12-11 to 2021-02-18 | v2.0.x | State exported at the end became the cosmoshub-4 genesis |
| cosmoshub-2 | 2019 | v1.0.x | Genesis kept in cosmos/mainnet |
| cosmoshub-1 | 2019, from the 2019-03-13 launch | v0.0.x | Launch chain |

Genesis files for every chain id are in [cosmos/mainnet](https://github.com/cosmos/mainnet) with checksums in `genesis/genesis_checksum.md`. The [Archives](https://docs.cosmos.network/hub/latest/resources/archives.md) page covers where exported state and block data for the earlier chains are kept. The gaia version lines for the earlier chains come from the previous version of this page and were not re-verified.

## Next

[Upgrade a node](https://docs.cosmos.network/hub/latest/hub-tutorials/upgrade-node.md) for the runbook, [Versions](https://docs.cosmos.network/hub/latest/start/versions.md) for what runs today.
