var img = document.createElement('img'); img.src = "https://terradocs.matomo.cloud//piwik.php?idsite=1&rec=1&url=https://docs.terra.money" + location.pathname; img.style = "border:0"; img.alt = "tracker"; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(img,s);
Skip to main content

Terra Core upgrade guides

Current version - v2.9.3

On January 18th, 2024, a core upgrade proposal was passed through governance. The Terra Core was upgraded to v2.9.3 at blockheight 8782000.

Core v2.6.1

On November 10th, 2023, a core upgrade proposal was passed through governance. On November 15th, 2023, the Terra Core was upgraded to v2.6.1 at blockheight 7722000.

Previous Upgrades

v2.5.2

The Terra Core will upgrade at blockcheight 7316000, as specified in the Core Upgrade Governance Proposal. After passing, the chain will halt at the specified height, and validators will need to update their nodes. Once updated, the chain will start again.

v2.3.1

The Terra Core will be upgraded at blockcheight 4711800, as specified in the Core Upgrade Governance Proposal. After passing, the chain will halt at the specified height, and validators will need to update their nodes. Once updated, the chain will start again. This process may take some time as this is a major upgrade.

Refer to the Upgrade overview for more information on Terra Core changes.

For developers

There are two main action items for developers to prepare for the upgrade:

  1. Cosmos SDK v0.46.x contains endpoint changes. Please review the table below for specifics. New endpoints are available with the addition of the Alliance and TokenFactory modules.

  2. Make sure you are using the latest version of Feather.js which contains the necessary updates for this chain upgrade.

In addition, a new rust client has been added so that users can directly interact with Cosmos SDK modules from a smart contract.

Endpoint changes

Developers will need to update the following endpoints to maintain compatibility after the upgrade.

DeprecatedNew
/node_info/cosmos/base/tendermint/v1beta1/node_info
/syncing/cosmos/base/tendermint/v1beta1/syncing
/blocks/latest/cosmos/base/tendermint/v1beta1/blocks/latest
/blocks/{height}/cosmos/base/tendermint/v1beta1/blocks/{height}
/validatorsets/latest/cosmos/base/tendermint/v1beta1/validatorsets/latest
/validatorsets/{height}/cosmos/base/tendermint/v1beta1/validatorsets/{height}
/txs/{hash}/cosmos/tx/v1beta/txs/{hash}
/txs/cosmos/tx/v1beta/txs
/txs/encode/cosmos/tx/v1beta/txs/encode
/txs/decode/cosmos/tx/v1beta/txs/decode
/bank/balances/{address}/cosmos/bank/v1beta/balances/{address}
/bank/accounts/{address}/transfers/cosmos/bank/v1beta/accounts/{address}/transfers
/bank/total/cosmos/bank/v1beta/total
/bank/total/{denomination}/cosmos/bank/v1beta/total/{denomination}
/auth/accounts/{address}/cosmos/auth/v1beta/accounts/{address}
/staking/delegators/{delegatorAddr}/delegations/cosmos/staking/v1beta/delegators/{delegatorAddr}/delegations
/staking/delegators/{delegatorAddr}/delegations/{validatorAddr}/cosmos/staking/v1beta/delegators/{delegatorAddr}/delegations/{validatorAddr}
/staking/delegators/{delegatorAddr}/unbonding_delegations/cosmos/staking/v1beta/delegators/{delegatorAddr}/unbonding_delegations
/staking/delegators/{delegatorAddr}/unbonding_delegations/{validatorAddr}/cosmos/staking/v1beta/delegators/{delegatorAddr}/unbonding_delegations/{validatorAddr}
/staking/redelegations/cosmos/staking/v1beta/redelegations
/staking/delegators/{delegatorAddr}/redelegations/cosmos/staking/v1beta/delegators/{delegatorAddr}/redelegations
/staking/delegators/{delegatorAddr}/validators/cosmos/staking/v1beta/delegators/{delegatorAddr}/validators
/staking/delegators/{delegatorAddr}/validators/{validatorAddr}/cosmos/staking/v1beta/delegators/{delegatorAddr}/validators/{validatorAddr}
/staking/validators/cosmos/staking/v1beta/validators
/staking/validators/{validatorAddr}/cosmos/staking/v1beta/validators/{validatorAddr}
/staking/validators/{validatorAddr}/delegations/cosmos/staking/v1beta/validators/{validatorAddr}/delegations
/staking/validators/{validatorAddr}/unbonding_delegations/cosmos/staking/v1beta/validators/{validatorAddr}/unbonding_delegations
/staking/pool/cosmos/staking/v1beta/pool
/staking/parameters/cosmos/staking/v1beta/parameters
/slashing/signing_infos/cosmos/slashing/v1beta/signing_infos
/slashing/validators/{validatorAddr}/unjail/cosmos/slashing/v1beta/validators/{validatorAddr}/unjail
/slashing/parameters/cosmos/slashing/v1beta/parameters
/gov/proposals/cosmos/gov/v1beta/proposals
/gov/proposals/param_change/cosmos/gov/v1beta/proposals/param_change
/gov/proposals/{proposalId}/cosmos/gov/v1beta/proposals/{proposalId}
/gov/proposals/{proposalId}/proposer/cosmos/gov/v1beta/proposals/{proposalId}/proposer
/gov/proposals/{proposalId}/deposits/cosmos/gov/v1beta/proposals/{proposalId}/deposits
/gov/proposals/{proposalId}/deposits/{depositor}/cosmos/gov/v1beta/proposals/{proposalId}/deposits/{depositor}
/gov/proposals/{proposalId}/votes/cosmos/gov/v1beta/proposals/{proposalId}/votes
/gov/proposals/{proposalId}/votes/{voter}/cosmos/gov/v1beta/proposals/{proposalId}/votes/{voter}
/gov/proposals/{proposalId}/tally/cosmos/gov/v1beta/proposals/{proposalId}/tally
/gov/parameters/deposit/cosmos/gov/v1beta/parameters/deposit
/gov/parameters/tallying/cosmos/gov/v1beta/parameters/tallying
/gov/parameters/voting/cosmos/gov/v1beta/parameters/voting
/distribution/delegators/{delegatorAddr}/rewards/cosmos/distribution/v1beta/delegators/{delegatorAddr}/rewards
/distribution/delegators/{delegatorAddr}/rewards/{validatorAddr}/cosmos/distribution/v1beta/delegators/{delegatorAddr}/rewards/{validatorAddr}
/distribution/delegators/{delegatorAddr}/withdraw_address/cosmos/distribution/v1beta/delegators/{delegatorAddr}/withdraw_address
/distribution/validators/{validatorAddr}/cosmos/distribution/v1beta/validators/{validatorAddr}
/distribution/validators/{validatorAddr}/outstanding_rewards/cosmos/distribution/v1beta/validators/{validatorAddr}/outstanding_rewards
/distribution/validators/{validatorAddr}/rewards/cosmos/distribution/v1beta/validators/{validatorAddr}/rewards
/distribution/community_pool/cosmos/distribution/v1beta/community_pool
/distribution/parameters/cosmos/distribution/v1beta/parameters
/minting/parameters/cosmos/mint/v1beta/parameters
/minting/inflation/cosmos/mint/v1beta/inflation
/minting/annual-provisions/cosmos/mint/v1beta/annual-provisions
/wasm/code/cosmwasm/wasm/v1/code
/wasm/code/{codeID}/cosmwasm/wasm/v1/code/{codeID}
/wasm/code/{codeID}/contracts/cosmwasm/wasm/v1/code/{codeID}/contracts
/wasm/contract/{contractAddr}/cosmwasm/wasm/v1/contract/{contractAddr}
/wasm/contract/{contractAddr}/code/cosmwasm/wasm/v1/contract/{contractAddr}/code
/wasm/contract/{contractAddr}/admin/cosmwasm/wasm/v1/contract/{contractAddr}/admin
/wasm/contract/{contractAddr}/state/cosmwasm/wasm/v1/contract/{contractAddr}/state
/wasm/contract/{contractAddr}/smart/{query}/cosmwasm/wasm/v1/contract/{contractAddr}/smart/{query}
/wasm/contract/{contractAddr}/raw/{key}/cosmwasm/wasm/v1/contract/{contractAddr}/raw/{key}
/wasm/contract/{contractAddr}/history/cosmwasm/wasm/v1/contract/{contractAddr}/history
/ibc/client/v1/params/ibc/core/client/v1/params

New endpoints

EndpointDescription
get /osmosis/tokenfactory/v1beta1/paramsParams defines a gRPC query method that returns the tokenfactory module's parameters.
get /osmosis/tokenfactory/v1beta1/denoms_from_creator/{creator}DenomsFromCreator defines a gRPC query method for fetching all denominations created by a specific admin/creator.
get /osmosis/tokenfactory/v1beta1/denoms/{denom}/authority_metadataDenomAuthorityMetadata defines a gRPC query method for fetching DenomAuthorityMetadata for a particular denom.
get /terra/alliances/{denom}Query a specific alliance by denom
get /terra/alliances/validators/{validator_addr}Query an alliance validator.
get /terra/alliances/validatorsQuery all paginated alliance validators.
get /terra/alliances/rewards/{delegator_addr}/{validator_addr}/{denom}Query for rewards by delegator_addr, validator_addr and denom
get /terra/alliances/rewards/{delegator_addr}/{validator_addr}/ibc/{hash}Query for rewards by delegator addr, validator_addr and denom
get /terra/alliances/paramsGet params regarding existing alliances
get /terra/alliances/ibc/{hash}Query a specific alliance by ibc hash
get /terra/alliances/delegations/{delegator_addr}/{validator_addr}/{denom}Query a delegation to an alliance by delegator_addr, validator_addr and denom
get /terra/alliances/delegations/{delegator_addr}/{validator_addr}/ibc/{hash}Query a delegation to an alliance by delegator_addr, validator_addr and denom
get /terra/alliances/delegations/{delegator_addr}/{validator_addr}Query all paginated alliance delegations for a delegator_addr and validator_addr
get /terra/alliances/delegations/{delegator_addr}Query all paginated alliance delegations for a delegator_addr
get /terra/alliances/delegationsQuery all paginated alliance delegations
get /terra/alliancesQuery paginated alliances
get /ibc/apps/interchain_accounts/host/v1/paramsParams queries all parameters of the ICA host submodule.
get /ibc/apps/interchain_accounts/controller/v1/paramsParams queries all parameters of the ICA controller submodule.
get /ibc/apps/interchain_accounts/controller/v1/owners/{owner}/connections/{connection_id}Returns the interchain account address for a given owner address on a given connection
get /ibc/apps/fee/v1/incentivized_packetsReturns all incentivized packets and their associated fees
get /ibc/apps/fee/v1/fee_enabledReturns a list of all fee enabled channels
get /ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/{packet_id.sequence}/total_timeout_feesReturns the total timeout fees for a packet given its identifier
get /ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/{packet_id.sequence}/total_recv_feesTotalRecvFees returns the total receive fees for a packet given its identifier
get /ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/{packet_id.sequence}/total_ack_feesTotalAckFees returns the total acknowledgment fees for a packet given its identifier
get /ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/{packet_id.sequence}/incentivized_packetIncentivizedPacket returns all packet fees for a packet given its identifier
get /ibc/apps/fee/v1/channels/{channel_id}/relayers/{relayer}/payeePayee returns the registered payee address for a specific channel given the relayer address
get /ibc/apps/fee/v1/channels/{channel_id}/relayers/{relayer}/counterparty_payeeCounterpartyPayee returns the registered counterparty payee for forward relaying
get /ibc/apps/fee/v1/channels/{channel_id}/ports/{port_id}/incentivized_packetsGets all incentivized packets for a specific channel
get /ibc/apps/fee/v1/channels/{channel_id}/ports/{port_id}/fee_enabledFeeEnabledChannel returns true if the provided port and channel identifiers belong to a fee-enabled channel
get /cosmos/auth/v1beta1/address_by_id/{id}AccountAddressByID returns account address based on account number.
get /cosmos/bank/v1beta1/denom_owners/{denom}DenomOwners queries for all account addresses that own a particular token denomination.
get /ibc/core/connection/v1/paramsConnectionParams queries all parameters of the ibc connection submodule.
get /ibc/core/client/v1/paramsClientParams queries all parameters of the ibc client submodule.
get /cosmwasm/wasm/v1/contracts/creator/{creator_address}ContractsByCreator gets the contracts by creator
get /cosmwasm/wasm/v1/codes/paramsParams gets the module params
get /cosmos/base/tendermint/v1beta1/abci_queryABCIQuery defines a query handler that supports ABCI queries directly to the application, bypassing Tendermint completely. The ABCI query must contain a valid and supported path, including app, custom, p2p, and store.