Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
185 changes: 185 additions & 0 deletions passage-2/upgrades/v4.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
# Passage v4.0.0 Software Upgrade

Cosmos SDK v0.47 to v0.50 upgrade for passage-2 validators.

| Field | Value |
|---|---|
| Proposal | #23 |
| Status | Voting period |
| Upgrade name | v4.0.0 |
| Upgrade height | 19950687 |
| Estimated timing | Around July 9, 2026 UTC. Height is authoritative. |
| Voting ends | 2026-07-07 20:14 UTC |
| Official release | https://github.com/envadiv/Passage3D/releases/tag/v4.0.0 |

## Announcement Copy

Proposal #23 is live for the Passage v4.0.0 software upgrade. This upgrade moves passage-2 from the Cosmos SDK v0.47 line to the v0.50 line and should be treated as a coordinated validator upgrade.

Validators should vote, download the official Passage v4.0.0 release, verify checksums, and be available around the upgrade height. The upgrade name must match exactly: `v4.0.0`.

## What Is Changing

- Cosmos SDK v0.47.13 to v0.50.13.
- CometBFT v0.37.18 to v0.38.12.
- wasmd v0.45.0 to v0.50.0.
- ibc-go v7 to v8.
- Adds the `x/circuit` circuit-breaker module.
- Enables proposal cancellation.
- Enables expedited governance proposals.
- Enables Sign Mode Textual.
- Enables AutoCLI.
- Adds the required IAVL v1.2.2 empty-store load patch.
- Runs module migrations for gov, IBC, slashing, staking, transfer, auth, and related SDK modules.
- Preserves CosmWasm state. Fork testing confirmed 33/33 code hashes and 79/79 contracts preserved.

## Governance And Parameter Changes

| Area | Change |
|---|---|
| Validator commission | Minimum validator commission set to 5%. |
| Expedited voting | Expedited voting period set to 24 hours. |
| Expedited threshold | Expedited proposal threshold set to 67%. |
| Expedited deposit | Expedited minimum deposit set to 1,000,000 PASG. |
| Gov quorum | Governance quorum set to 50%. |
| Gov veto threshold | Governance veto threshold set to 50%. |

## Validator Instructions

### 1. Vote on proposal #23

```bash
passage tx gov vote 23 yes \
--from <key> \
--chain-id passage-2 \
--gas auto --gas-adjustment 1.5 --gas-prices 12.5upasg \
--node <rpc> \
-y
```

### 2. Download and verify the official Passage binary

Use the binary for your architecture from the official Passage v4.0.0 release:

https://github.com/envadiv/Passage3D/releases/tag/v4.0.0

#### linux/amd64

```bash
curl -L -o /tmp/passage-4.0.0-linux-amd64 \
https://github.com/envadiv/Passage3D/releases/download/v4.0.0/passage-4.0.0-linux-amd64

echo "b2b5b63da05fa16b96f1c0ce0974a07618a43fef085ea1db5429c0858122ec22 /tmp/passage-4.0.0-linux-amd64" | sha256sum -c

chmod +x /tmp/passage-4.0.0-linux-amd64
```

#### linux/arm64

```bash
curl -L -o /tmp/passage-4.0.0-linux-arm64 \
https://github.com/envadiv/Passage3D/releases/download/v4.0.0/passage-4.0.0-linux-arm64

echo "86b744f988d923a8d7ba109a64d96eaf4821079a518e1ba604c199241e2ca6c5 /tmp/passage-4.0.0-linux-arm64" | sha256sum -c

chmod +x /tmp/passage-4.0.0-linux-arm64
```

### 3. If using cosmovisor

Pre-stage the binary before the upgrade height. This avoids relying on any automatic download URL and ensures the local staged binary is the official Passage release.

#### linux/amd64

```bash
mkdir -p ~/.passage/cosmovisor/upgrades/v4.0.0/bin
cp /tmp/passage-4.0.0-linux-amd64 ~/.passage/cosmovisor/upgrades/v4.0.0/bin/passage
~/.passage/cosmovisor/upgrades/v4.0.0/bin/passage version --long
```

#### linux/arm64

```bash
mkdir -p ~/.passage/cosmovisor/upgrades/v4.0.0/bin
cp /tmp/passage-4.0.0-linux-arm64 ~/.passage/cosmovisor/upgrades/v4.0.0/bin/passage
~/.passage/cosmovisor/upgrades/v4.0.0/bin/passage version --long
```

At height `19950687`, cosmovisor should switch to:

```bash
~/.passage/cosmovisor/upgrades/v4.0.0/bin/passage
```

### 4. If not using cosmovisor

Do not replace your running binary early. Download and verify the v4.0.0 binary ahead of time, then install it only after the node halts at the upgrade height.

When the chain reaches height `19950687` and your node halts for the upgrade:

```bash
sudo systemctl stop passage
```

Find the current binary path:

```bash
command -v passage
systemctl cat passage | grep ExecStart
```

Back up the old binary and install the new one. Replace `/usr/local/bin/passage` if your service uses a different path.

#### linux/amd64

```bash
sudo cp /usr/local/bin/passage /usr/local/bin/passage-pre-v4.0.0
sudo install -m 0755 /tmp/passage-4.0.0-linux-amd64 /usr/local/bin/passage
passage version --long
sudo systemctl start passage
```

#### linux/arm64

```bash
sudo cp /usr/local/bin/passage /usr/local/bin/passage-pre-v4.0.0
sudo install -m 0755 /tmp/passage-4.0.0-linux-arm64 /usr/local/bin/passage
passage version --long
sudo systemctl start passage
```

If you do not run Passage under systemd, stop the running process at the upgrade halt, replace the binary your startup command uses, and restart the node with the same flags you normally use.

### 5. Monitor after the upgrade

```bash
journalctl -u passage -f

passage q upgrade applied v4.0.0 --node <rpc>
passage status --node <rpc>
```

Confirm the node is advancing and peers are reconnecting after restart.

## Release And Checksums

| Architecture | Binary | SHA256 |
|---|---|---|
| linux/amd64 | passage-4.0.0-linux-amd64 | b2b5b63da05fa16b96f1c0ce0974a07618a43fef085ea1db5429c0858122ec22 |
| linux/arm64 | passage-4.0.0-linux-arm64 | 86b744f988d923a8d7ba109a64d96eaf4821079a518e1ba604c199241e2ca6c5 |

Official checksum file:

https://github.com/envadiv/Passage3D/releases/download/v4.0.0/sha256sum.txt

## Important Notes

- The on-chain upgrade name is `v4.0.0`. The name is case-sensitive and must match exactly.
- Height is authoritative. Calendar estimates can drift with block time.
- Use the official Passage v4.0.0 release and verify checksums before installing.
- Validators using cosmovisor should pre-stage the binary locally before the upgrade height.
- Validators not using cosmovisor should replace the binary only after the node halts at height `19950687`.

## Short Message For Validator Channels

Proposal #23 is live for Passage v4.0.0, upgrading passage-2 from Cosmos SDK v0.47 to v0.50. Please vote YES, download the official Passage v4.0.0 release, verify the checksum, and be available around height `19950687`. Cosmovisor validators should pre-stage the binary; non-cosmovisor validators should install the new binary only after their node halts at the upgrade height. The upgrade name is `v4.0.0` and must match exactly.
Loading