Binary for the v0.61 mainnet upgrade. Switch to it only when your node halts with UPGRADE "v0.61" NEEDED at the height set by the governance proposal; before that height it refuses to start.
nyxd now tracks wasmd v0.61.16.
| v0.60.1 | v0.61.16 | |
|---|---|---|
| wasmd | v0.60.0 | v0.61.16 |
| wasmvm | v2.2.1 | v3.0.9 |
| cosmos-sdk | v0.53.3 | v0.53.6 |
| CometBFT | v0.38.18 | v0.38.21 |
| ibc-go | v10.0.0 | v10.5.0 |
| hyperlane-cosmos | v1.0.0 | v1.1.0 |
| Go | 1.23.11 | 1.26.9 |
Changes
- Includes the CosmWasm fix for the critical fund-loss issue disclosed on 2026-09-24. v0.60.1 does not have it.
- State sync works again (#81). The app wrote mint state on startup, which made the snapshot import fail with
tree must be empty. Nodes that hitfound database at version Nmust runnyxd comet unsafe-reset-all --keep-addr-bookbefore retrying. - The
v0.61upgrade handler pins the mixnet, directory, ecash and geolocation contracts. Calls to them cost 58,000 gas less each, and every node holds about 45 MiB more in memory. It also grants the Nym admin multisigMsgPinCodesandMsgUnpinCodeson behalf of governance. Governance stays the wasm authority and can revoke the grants. in-place-testnetandscripts/testnetify.shfork mainnet state into a working single-validator testnet, optionally running an upgrade on the first block.
Before the upgrade height
The binary links wasmvm v3. Stage nyxd and the bundled libwasmvm.x86_64.so in their own directory and point the new binary at that library (LD_LIBRARY_PATH). The v3 library has the same file name as the v2 one, so copying it over the library your v0.60 node uses breaks that node on its next restart. Mainnet state cannot be synced on arm64 machines.
Testing
- Upgraded sandbox through governance with v0.61.16-rc.0 (proposal 36, height 19220908): the chain halted at the upgrade height, resumed on the new binary, and kept its state; existing contracts ran under wasmvm v3.
- Applied the upgrade to a copy of mainnet state at height 26064002: the handler pinned the four contracts and created the grants, and replayed mainnet transactions cost 58,000 gas less per pinned contract.
- State sync of mainnet with the fix restored height 26048000 and applied 470 further blocks with matching app hashes.
v0.61.16 has the same code as v0.61.16-rc.0, plus documentation and the Dockerfile release URL.
Operator notes: docs/upgrades/v0.61.md