Skip to main content

Cosmos SDK LSM

Deprecation

As of the v24.x release of Gaia, the Cosmos SDK based Liquid Staking Module is deprecated. The v24 release line will still have all the types from the forked SDK version, but all the API endpoints will be disabled.

Migration

The following outlines the key differences between the Cosmos SDK LSM and the x/liquid module, including message and API removals between the two, as well as parameter and limit changes. In general an effort was made to keep as much as possible the same between the two. Cases where removals were made were largely due to no longer be able to properly track state from outside the staking module.

The state associated with each account currently on a live network which is using the SDK LSM will be migrated to use the liquid module. There should be no change to the existing liquid staking denoms, tokenize share records, or rewards associated with any owner of a tokenize share record.

Removals

  • MsgUnbondValidator
  • MsgValidatorBond

Both the message types and the APIs for Validator Bonds have been removed. The min_self_delegation field in the SDK's staking module, which had previously been marked as deprecated, has been restored to its upstream state.

Note that if you created a validator after the field was deprecated, you may end up with 0 self delegation and a min_self_delegation of 1. This should be minimally invasive and will only affect you if you try to call EditValidator or potentially in an Unjail scenario. The resolution for this is to self delegate a minimal amount of stake.

  • Limits changes

The GlobalLiquidStakingCap and ValidatorLiquidStakingCap are now the only protocol limits and are enforced solely on tokenized shares through the x/liquid module itself. Previously this tracked delegations via ICA as counting towards these limits, but the new tallies do not take that into account.

Additionally, the liquid_shares field of the Validator object returned in staking module queries will no longer be updated. Its removal is planned in v25, but as of v24 that value will still show up, but will not be updated and is not used in limits calculations. To query the same information, you can use the QueryLiquidValidator request added to the x/liquid module.

Migrations

All messages and APIs have been moved.

For protobuf, the types within the distribution and staking modules have all been moved to

gaia.liquid.v1beta1.*

For API paths, the module-specific paths have all been moved to

/gaia/liquid/v1beta1/

CLI interactions with the liquid module should use gaiad q liquid or gaiad tx liquid, etc.