Skip to main content
This page tracks releases and changes for v0.54.0. For the full release history, see the CHANGELOG on GitHub.
Release
SDKRelease
v0.54.0

Breaking Changes

  • (x/consensus) #25607 Add AuthorityParams to consensus params. When set, the consensus params authority takes precedence over per-keeper authority for all module parameter updates. Keeper constructor signatures are unchanged.
  • (x/staking) #25724 Validate BondDenom in MsgUpdateParams to prevent setting non-existent or zero-supply denoms.
  • #25778 Update log to log v2.
  • #25090 Moved deprecated modules to ./contrib. These modules are still available but will no longer be actively maintained or supported in the Cosmos SDK Bug Bounty program.
  • x/group
  • x/nft
  • x/circuit
  • x/crisis
  • (crypto) #24414 Remove sr25519 support, since it was removed in CometBFT v1.x (see: CometBFT #3646).
  • (x/mint) #25599 Add max supply param.
  • (x/gov) #25615 Decouple x/gov from x/staking by making CalculateVoteResultsAndVotingPowerFn a required parameter to keeper.NewKeeper instead of StakingKeeper.
  • (x/gov) #25617 AfterProposalSubmission hook now includes proposer address as a parameter.
  • (x/gov) #25616 DistrKeeper x/distribution is now optional. Genesis validation ensures distrKeeper is set if distribution module is used as proposal cancel destination.
  • (systemtests) [#25930]https://github.com/cosmos/cosmos-sdk/pull/25930) Move systemtests into testutil and no longer under its own go.mod.
  • (baseapp) #26060 Remove BaseApp.SetStoreMetrics. The StoreMetrics interface never worked, so removing dead code.
  • (store) #26061 Remove store tracing API and all related plumbing:
  • Remove SetTracer, SetTracingContext, and TracingEnabled from MultiStore interface.
  • Remove CacheWrapWithTrace from CacheWrapper interface.
  • Remove BaseApp.SetCommitMultiStoreTracer and tracing context logic from BaseApp.cacheTxContext and FinalizeBlock.
  • Remove io.Writer parameter from servertypes.AppCreator and traceWriter io.Writer from servertypes.AppExporter.
  • Remove traceStore io.Writer parameter from simapp.NewSimApp and all enterprise simapp constructors.
  • Remove traceStore io.Writer from all testutil/simsx app factory signatures.
  • (store) #26042 We are now importing github.com/cosmos/cosmos-sdk/store/v2 as the store package instead of cosmossdk.io/store and all import paths have changed.
  • (baseapp) #26138 Default block gas meter to disabled. Adds checking to ensure block gas meter is not enabled while bstm parallel execution is configured and panics in these scenarios during parameter assignment.

Features

  • #25471 Full BLS 12-381 support enabled.
  • #24872 Support BLS 12-381 for cli init, gentx, collect-gentx
  • (crypto) #24919 add NewPubKeyFromBytes function to the secp256r1 package to create PubKey from bytes
  • (server) #24720 add verbose_log_level flag for configuring the log level when switching to verbose logging mode during sensitive operations (such as chain upgrades).
  • (crypto) #24861 add PubKeyFromCometTypeAndBytes helper function to convert from comet/v2 PubKeys to the cryptotypes.Pubkey interface.
  • (abci_utils) #25008 add the ability to assign a custom signer extraction adapter in DefaultProposalHandler.
  • (crypto/ledger) #25435 Add SetDERConversion to reset skipDERConversion and App name for ledger.
  • (gRPC) #25565 Support for multi gRPC query clients serve with historical binaries to serve proper historical state.
  • (blockstm) #25600 Allow dynamic retrieval of the coin denomination from multi store at runtime.
  • (x/distribution) #25650 Add new gRPC query endpoints and CLI commands for DelegatorStartingInfo, ValidatorHistoricalRewards, and ValidatorCurrentRewards.
  • #25516 Support automatic configuration of OpenTelemetry via OpenTelemetry declarative configuration and add OpenTelemetry instrumentation of BaseApp.
  • #25745 Add DiskIO telemetry via gopsutil.
  • (grpc) #25648 Add earliest_block_height and latest_block_height fields to GetSyncingResponse.
  • (collections/codec) [#25614] (https://github.com/cosmos/cosmos-sdk/pull/25827) Add TimeValue (ValueCodec[time.Time]) to collections/codec.
  • (enterprise/poa) #25838 Add the poa module under the enterprise directory.
  • (grpc) #25850 Add GetBlockResults and GetLatestBlockResults gRPC endpoints to expose CometBFT block results including finalize_block_events.
  • (events) #25877 Add OverrideEvents to EventManagerI.

Improvements

  • (ci) Use softprops/action-gh-release for main-nightly instead of custom gh/git to avoid repository ruleset conflicts.
  • (telemetry) #26006 Export ExtensionOptions type for programmatic otel.yaml generation.
  • #25955 Use cosmos/btree directly instead of replacing it in go.mods
  • (types) #25342 Undeprecated EmitEvent and EmitEvents on the EventManager. These functions will continue to be maintained.
  • (types) #24668 Scope the global config to a particular binary so that multiple SDK binaries can be properly run on the same machine.
  • (baseapp) #24655 Add mutex locks for state and make lastCommitInfo atomic to prevent race conditions between Commit and CreateQueryContext.
  • (proto) #24161 Remove unnecessary annotations from x/staking authz proto.
  • (x/bank) #24660 Improve performance of the GetAllBalances and GetAccountsBalances keeper methods.
  • (collections) #25464 Add IterateRaw method to Multi index type to satisfty query Collection interface.
  • (x/mint) #25562 Improve and test x/mint params validation.
  • (api) #25613 Separated deprecated modules into the contrib directory, distinct from api, to enable and unblock new proto changes without affecting legacy code.
  • (server) #25632 Add missing call to close the app on shutdown.
  • (server) #25740 Add variadic grpc.DialOption parameter to StartGrpcServer for custom gRPC client connection options.
  • (blockstm) #25765 Minor code readability improvement in block-stm.
  • (blockstm) #25786 Add pre-state checking in transaction state transition.
  • (server/config) #25807 fix(server): reject overlapping historical gRPC block ranges.
  • #25857 Reduce scope of mutex in PriorityNonceMempool.Remove.
  • (baseapp) #25862 Skip running validateBasic for rechecking txs. (Backport of https://github.com/cosmos/cosmos-sdk/pull/20208).
  • (blockstm) 25883 Re-use decoded tx object in pre-estimates.
  • (blockstm) #25788 Only validate transactions that’s executed at lease once.
  • (blockstm) #25767 Optimize block-stm MVMemory with bitmap index.

Bug Fixes

  • (baseapp) #25331 Avoid noisy errors when gRPC response headers are already sent, set block height as a header when possible and fall back to a trailer.
  • (blockstm) #25789 Wake up suspended executors when scheduler doesn’t complete to prevent goroutine leaks.
  • (grpc) #25647 Return actual earliest_store_height in node.Status gRPC endpoint instead of hardcoded 0.
  • (types/query) #25665 Fix pagination offset when querying a collection with predicate function.
  • (x/staking) #25649 Add missing defer iterator.Close() calls in IterateDelegatorRedelegations and GetRedelegations to prevent resource leaks.
  • (mempool) #25563 Cleanup sender indices in case of tx replacement.
  • (x/epochs) #25425 Fix InvokeSetHooks being called with a nil keeper and AppModule containing a copy instead of a pointer (hooks set post creating the AppModule like with depinject didn’t apply because it’s a different instance).
  • (client, client/rpc, x/auth/tx) #24551 Handle cancellation properly when supplying context to client methods.
  • (x/authz) #24638 Fixed a minor bug where the grant key was cast as a string and dumped directly into the error message leading to an error string possibly containing invalid UTF-8.
  • (client, client/rpc, x/auth/tx) #24551 Handle cancellation properly when supplying context to client methods.
  • (x/epochs) #24770 Fix register of epoch hooks in InvokeSetHooks.
  • (x/epochs) #25087 Remove redundant error check in BeginBlocker.
  • GHSA-p22h-3m2v-cmgh Fix x/distribution can halt when historical rewards overflow.
  • (x/staking) #25258 Add delegator address to redelegate event.
  • (cli) #25485 Avoid failed to convert address field in withdraw-validator-commission cmd.
  • (baseapp) #25642 Mark pre-block events for indexing based on local configuration.
  • (x/bank) #25751 Fix recipient address in events.
  • (client) [#25811] (https://github.com/cosmos/cosmos-sdk/pull/25811) fix(client): fix file handle leaks in snapshot commands.
  • (server/config) #25806 fix: add missing commas in historical gRPC config template.
  • (client) #25804 Add GetHeightFromMetadataStrict API to grpc client for better error handling.
  • (x/auth) #25828 Limits pagination at default for values that exceed it.
  • (x/staking) #25829 Validates case-sensitivity on authz grands in x/staking.
  • (mempool) #25869 fix(mempool): add thread safety to NextSenderTx.
  • (blockstm) #25912 Remove SigVerificationDecorator signature incarnation cache causing state divergence under blockstm.
  • (x/group) #25922 Add zero-total-weight check for ThresholdDecisionPolicy
  • (x/group) #25917 Prevent creation of zero-weight groups.
  • (x/group) #25919 add safer type assertions to group DecisionPolicy getter calls.
  • (x/group) #25920 Expand voting period check to verify period is positive instead of nonzero.
  • (baseapp) #26063 Fixes an issue where values embedded in context during ante handling were wiped after the handlers returned.

Deprecated

  • (x/nft) #24575 Deprecate the x/nft module in the Cosmos SDK repository. This module will not be maintained to the extent that our core modules will and will be kept in a legacy repo.
  • (x/group) #24571 Deprecate the x/group module in the Cosmos SDK repository. This module will not be maintained to the extent that our core modules will and will be kept in a legacy repo.
  • (types) #24664 Deprecate the Invariant type in the Cosmos SDK.
  • #25516 Deprecate all existing methods and types in the telemetry package, usage of github.com/hashicorp/go-metrics and the telemetry configuration section. New instrumentation should use the official OpenTelemetry go API and Cosmos SDK applications can automatically expose OpenTelemetry metrics, traces and logs via OpenTelemetry declarative configuration.
  • #25948 Change default app.go code to not use depinject as we are phasing it out.
  • (baseapp) #26107 Deprecate baseapp test helper app.NewUncachedContext, consider using app.NewNextBlockContext or app.NewContext instead, see UPGRADING.md for more details.