Dora Vota v1.0.1 — IBC Amino signing compatibility
This release fixes IBC transfers signed with the standard Amino JSON format used by Keplr-compatible clients. It is a coordinated consensus upgrade from v1.0.0, despite the patch version number. Do not replace a running v1.0.0 node before the governance-approved upgrade height.
Release identity
- Source commit:
39759f09a438ebc0e1fdc4b6af748a1d7d03e142 - Upgrade plan name, binary version, tag and Cosmovisor directory:
v1.0.1 - Distributed platform: Linux AMD64, static binary. ARM64 passed CI build/smoke checks but is not distributed or accepted for production by this release.
- Verify downloaded files against the attached
sha256sum.txtand verify the embedded source commit withdorad version --long.
Reproducible binary verification
Linux AMD64 raw binary SHA-256:
04bd2d0dced7ccf1f993a70fb2be6b1718e0f1852c27f1bdeef0fa49eaea1696
The branch CI binary, the independently rebuilt binary (fresh source download and empty compilation cache), and the binary used in the snapshot/IBC rehearsals are byte-identical. Builds and chain tests were performed remotely.
What changes
For /ibc.applications.transfer.v1.MsgTransfer, Amino signing JSON now omits use_aliasing when its value is false. This resolves the signature mismatch between v1.0.0 and clients that already omit that default field.
| Signing format | v1.0.1 behavior |
|---|---|
| Amino IBC transfer, default false omitted | Accepted when the signature and transaction are otherwise valid |
| Amino IBC transfer, false explicitly included in signed JSON | Incompatible; recreate and sign with an updated client |
| Amino IBC transfer, explicit true | Remains included in signed data |
| Direct signing | Unchanged by this fix |
| Ordinary Amino bank transfers | Unchanged by this fix |
The patch retains the protobuf field, routing and IBC storage layout. It uses the same pinned IBC-Go development source as v1.0.0 with a minimal local patch; it does not adopt a newer upstream IBC-Go stable release. There is no PQCAuth module in this release.
The upgrade handler preserves the module version map and performs no application store migration or new-store addition. Normal upgrade completion/protocol metadata is recorded. Startup checks reject premature activation on existing databases and allow restart after committed completion. Wasm archive data remains preserved and read-only.
Validators
- Verify the binary checksum, version and full source commit. Back up configuration and validator state through your normal procedure.
- Stage the executable at
$DAEMON_HOME/cosmovisor/upgrades/v1.0.1/bin/dorad. - Keep v1.0.0 running until the governance-approved halt. The on-chain plan name must be exactly
v1.0.1; this release does not specify or activate a network height. - Check the actual Cosmovisor service,
DAEMON_HOME,DAEMON_NAME=doradand restart settings. Creating a directory alone does not configure automatic switching. - At height H, switch through the supervisor after the old binary halts. The committed state must be at H-1 and the local
data/upgrade-info.jsonmust agree with the committed plan. - Verify block production, validator participation, synchronization, archive queries and IBC acknowledgements after activation, then verify restart.
Do not bypass the startup guard, run duplicate signing instances, or switch current to v1.0.1 early. Do not use this binary to replay pre-v1.0.1 history. Historical replay requires the corresponding old binaries followed by the coordinated switch. After v1.0.1 commits state, rolling back only the executable is not a supported recovery procedure.
See the validator preparation guide. Its development-status wording and the dated October 28 implementation report describe the earlier candidate; this release note and attached validation summary record the later fixed-commit results.
Wallets and integrations
- Update v1.0.0 CLI users and custom Amino converters that explicitly include
use_aliasing:false. - Recreate and re-sign affected pre-signed transactions after activation.
- Remove any frontend workaround that injects false, coordinated with the chain upgrade.
- This binary fixes the chain-side signing mismatch. It does not certify every wallet, hardware device, swap provider or relayer configuration.
Full validation summary is attached to this release.
Verified scope and remaining acceptance
- Fixed-commit GitHub CI: required regression tests, enabled simulations and Linux AMD64/ARM64 build checks passed.
- A real mainnet snapshot at height 17984756 was forked into an isolated four-validator network, upgraded from v1.0.0 to this commit at 17984830, and restarted. Four-node AppHash agreement and unchanged Wasm/IBC/feegrant store roots were verified.
- A separate four-chain isolated network using Cosmos Hub v28.3.1, Osmosis v31.0.3 and Noble v11.6.0 binaries passed 20/20 checks: both directions, in-flight packets across the upgrade, acknowledgements, voucher returns, timeout refunds and a newly created large-number account. Post-upgrade Vota transfers used Amino signing.
- The attached validation summary distinguishes these tests from public-network acceptance. Real Keplr/Ledger acceptance, public-testnet upgrade, production supervisor/state-sync acceptance and any mainnet activation remain separate steps.
Publishing these artifacts does not authorize an uncoordinated mainnet upgrade. Upgrade scheduling must follow the network's governance and validator coordination process.