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

# Changelog

> Release history and changelog for Cosmos SDK

<Update label="2025-04-29 " description="v0.53.0" tags={["SDK", "Release"]}>
  ## FEATURES

  * [#24062](https://github.com/cosmos/cosmos-sdk/pull/24062) [#24145](https://github.com/cosmos/cosmos-sdk/pull/24145) (simsx) Add new simsx framework on top of simulations for better module dev experience.
  * [#24069](https://github.com/cosmos/cosmos-sdk/pull/24069) (baseapp) Create CheckTxHandler to allow extending the logic of CheckTx.
  * [#24093](https://github.com/cosmos/cosmos-sdk/pull/24093) (types) Added a new method, `IsGT`, for `types.Coin`. This method is used to check if a `types.Coin` is greater than another `types.Coin`.
  * [#24071](https://github.com/cosmos/cosmos-sdk/pull/24071) (client/keys) Add support for importing hex key using standard input.
  * [#23780](https://github.com/cosmos/cosmos-sdk/pull/23780) (types) Add a ValueCodec for the math.Uint type that can be used in collections maps.
  * [#24045](https://github.com/cosmos/cosmos-sdk/pull/24045) (perf) Sims: Replace runsim command with Go stdlib testing. CLI: `Commit` default true, `Lean`, `SimulateEveryOperation`, `PrintAllInvariants`, `DBBackend` params removed
  * [#24040](https://github.com/cosmos/cosmos-sdk/pull/24040) (crypto/keyring) Expose the db keyring used in the keystore.
  * [#23919](https://github.com/cosmos/cosmos-sdk/pull/23919) (types) Add MustValAddressFromBech32 function.
  * [#23708](https://github.com/cosmos/cosmos-sdk/pull/23708) (all) Add unordered transaction support.
  * Adds a `--timeout-timestamp` flag that allows users to specify a block time at which the unordered transactions should expire from the mempool.
  * [#23815](https://github.com/cosmos/cosmos-sdk/pull/23815) (x/epochs) Upstream `x/epochs` from Osmosis
  * [#23811](https://github.com/cosmos/cosmos-sdk/pull/23811) (client) Add auto cli for node service.
  * [#24018](https://github.com/cosmos/cosmos-sdk/pull/24018) (genutil) Allow manually setting the consensus key type in genesis
  * [#18557](https://github.com/cosmos/cosmos-sdk/pull/18557) (client) Add `--qrcode` flag to `keys show` command to support displaying key address QR code.
  * [#24030](https://github.com/cosmos/cosmos-sdk/pull/24030) (x/auth) Allow usage of ed25519 keys for transaction signing.
  * [#24163](https://github.com/cosmos/cosmos-sdk/pull/24163) (baseapp) Add `StreamingManager` to baseapp to extend the abci listeners.
  * [#23933](https://github.com/cosmos/cosmos-sdk/pull/23933) (x/protocolpool) Add x/protocolpool module.
  * x/distribution can now utilize an externally managed community pool. NOTE: this will make the message handlers for FundCommunityPool and CommunityPoolSpend error, as well as the query handler for CommunityPool.
  * [#18101](https://github.com/cosmos/cosmos-sdk/pull/18101) (client) Add a `keyring-default-keyname` in `client.toml` for specifying a default key name, and skip the need to use the `--from` flag when signing transactions.
  * [#24355](https://github.com/cosmos/cosmos-sdk/pull/24355) (x/gov) Allow users to set a custom CalculateVoteResultsAndVotingPower function to be used in govkeeper.Tally.
  * [#24436](https://github.com/cosmos/cosmos-sdk/pull/24436) (x/mint) Allow users to set a custom minting function used in the `x/mint` begin blocker.
  * The `InflationCalculationFn` argument to `mint.NewAppModule()` is now ignored and must be nil. To set a custom `InflationCalculationFn` for the default minter, use `mintkeeper.WithMintFn(mintkeeper.DefaultMintFn(customInflationFn))`.
  * [#24428](https://github.com/cosmos/cosmos-sdk/pull/24428) (api) Add block height to response headers

  ## IMPROVEMENTS

  * [#24561](https://github.com/cosmos/cosmos-sdk/pull/24561) (client) TimeoutTimestamp flag has been changed to TimeoutDuration, which now sets the timeout timestamp of unordered transactions to the current time + duration passed.
  * [#24541](https://github.com/cosmos/cosmos-sdk/pull/24541) (telemetry) Telemetry now includes a pre\_blocker metric key. x/upgrade should migrate to this key in v0.54.0.
  * [#24541](https://github.com/cosmos/cosmos-sdk/pull/24541) (x/auth) x/auth's PreBlocker now emits telemetry under the pre\_blocker metric key.
  * [#24431](https://github.com/cosmos/cosmos-sdk/pull/24431) (x/bank) Reduce the number of `ValidateDenom` calls in `bank.SendCoins` and `Coin`.
  * The `AmountOf()` method on `sdk.Coins` will no longer `panic` if given an invalid denom and will instead return a zero value.
  * [#24391](https://github.com/cosmos/cosmos-sdk/pull/24391) (x/staking) Replace panics with error results; more verbose error messages
  * [#24354](https://github.com/cosmos/cosmos-sdk/pull/24354) (x/staking) Optimize validator endblock by reducing bech32 conversions, resulting in significant performance improvement
  * [#18950](https://github.com/cosmos/cosmos-sdk/pull/18950) (client/keys) Improve `<appd> keys add`, `<appd> keys import` and `<appd> keys rename` by checking name validation.
  * [#18703](https://github.com/cosmos/cosmos-sdk/pull/18703) (client/keys) Improve `<appd> keys add` and `<appd> keys show` by checking whether there are duplicate keys in the multisig case.
  * [#18745](https://github.com/cosmos/cosmos-sdk/pull/18745) (client/keys) Improve `<appd> keys export` and `<appd> keys mnemonic` by adding --yes option to skip interactive confirmation.
  * [#24106](https://github.com/cosmos/cosmos-sdk/pull/24106) (x/bank) `SendCoins` now checks for `SendRestrictions` before instead of after deducting coins using `subUnlockedCoins`.
  * [#24036](https://github.com/cosmos/cosmos-sdk/pull/24036) (crypto/ledger) Improve error message when deriving paths using index > 100
  * [#23844](https://github.com/cosmos/cosmos-sdk/pull/23844) (gRPC) Add debug log prints for each gRPC request.
  * [#24073](https://github.com/cosmos/cosmos-sdk/pull/24073) (gRPC) Adds error handling for out-of-gas panics in grpc query handlers.
  * [#24072](https://github.com/cosmos/cosmos-sdk/pull/24072) (server) Return BlockHeader by shallow copy in server Context.
  * [#24053](https://github.com/cosmos/cosmos-sdk/pull/24053) (x/bank) Resolve a foot-gun by swapping send restrictions check in `InputOutputCoins` before coin deduction.
  * [#24336](https://github.com/cosmos/cosmos-sdk/pull/24336) (codec/types) Most types definitions were moved to `github.com/cosmos/gogoproto/types/any` with aliases to these left in `codec/types` so that there should be no breakage to existing code. This allows protobuf generated code to optionally reference the SDK's custom `Any` type without a direct dependency on the SDK. This can be done by changing the `protoc` `M` parameter for `any.proto` to `Mgoogle/protobuf/any.proto=github.com/cosmos/gogoproto/types/any`.

  ## BUG FIXES

  * [#24460](https://github.com/cosmos/cosmos-sdk/pull/24460) (x/gov) Do not call Remove during Walk in defaultCalculateVoteResultsAndVotingPower.
  * (baseapp) [24261](https://github.com/cosmos/cosmos-sdk/pull/24261) Fix post handler error always results in code 1
  * [#24068](https://github.com/cosmos/cosmos-sdk/pull/24068) (server) Allow aligning block header with skip check header in gRPC server.
  * [#24044](https://github.com/cosmos/cosmos-sdk/pull/24044) (x/gov) Fix some places in which we call Remove inside a Walk (x/gov).
  * [#24042](https://github.com/cosmos/cosmos-sdk/pull/24042) (baseapp) Fixed a data race inside BaseApp.getContext, found by end-to-end (e2e) tests.
  * [#24059](https://github.com/cosmos/cosmos-sdk/pull/24059) (client/server) Consistently set viper prefix in client and server. It defaults to the binary name for both client and server.
  * [#24041](https://github.com/cosmos/cosmos-sdk/pull/24041) (client/keys) `keys delete` won't terminate when a key is not found, but will log the error.
  * [#24027](https://github.com/cosmos/cosmos-sdk/pull/24027) (baseapp) Ensure that `BaseApp.Init` checks that the commit multistore is set to protect against nil dereferences.
  * [GHSA-47ww-ff84-4jrg](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-47ww-ff84-4jrg) (x/group) Fix x/group halting when erroring in EndBlocker
  * [#23934](https://github.com/cosmos/cosmos-sdk/pull/23934) (x/distribution) Fix vulnerability in `incrementReferenceCount` in distribution.
  * [#23879](https://github.com/cosmos/cosmos-sdk/pull/23879) (baseapp) Ensure finalize block response is not empty in the defer check of FinalizeBlock to avoid panic by nil pointer.
  * [#23883](https://github.com/cosmos/cosmos-sdk/pull/23883) (query) Fix NPE in query pagination.
  * [#23860](https://github.com/cosmos/cosmos-sdk/pull/23860) (client) Add missing `unordered` field for legacy amino signing of tx body.
  * [#23836](https://github.com/cosmos/cosmos-sdk/pull/23836) (x/bank) Fix `DenomMetadata` RPC to allow values with slashes.
  * (query) [87d3a43](https://github.com/cosmos/cosmos-sdk/commit/87d3a432af95f4cf96aa02351ed5fcc51cca6e7b) Fix collection filtered pagination.
  * [#23952](https://github.com/cosmos/cosmos-sdk/pull/23952) (sims) Use liveness matrix for validator sign status in sims
  * [#24055](https://github.com/cosmos/cosmos-sdk/pull/24055) (baseapp) Align block header when querying with latest height.
  * [#24074](https://github.com/cosmos/cosmos-sdk/pull/24074) (baseapp) Use CometBFT's ComputeProtoSizeForTxs in defaultTxSelector.SelectTxForProposal for consistency.
  * [#24090](https://github.com/cosmos/cosmos-sdk/pull/24090) (cli) Prune cmd should disable async pruning.
  * [#19239](https://github.com/cosmos/cosmos-sdk/pull/19239) (x/auth) Sets from flag in multi-sign command to avoid no key name provided error.
  * [#23741](https://github.com/cosmos/cosmos-sdk/pull/23741) (x/auth) Support legacy global AccountNumber for legacy compatibility.
  * [#24526](https://github.com/cosmos/cosmos-sdk/pull/24526) (baseapp) Fix incorrect retention height when `commitHeight` equals `minRetainBlocks`.
  * [#24594](https://github.com/cosmos/cosmos-sdk/pull/24594) (x/protocolpool) Fix NPE when initializing module via depinject.
  * [#24610](https://github.com/cosmos/cosmos-sdk/pull/24610) (x/epochs) Fix semantics of `CurrentEpochStartHeight` being set before epoch has started.
</Update>
