liquidstake module lets users stake uixo and receive a liquid representation (stuixo) that can be transferred and used in bonds, AMMs, and DeFi while underlying delegations earn validator rewards. The module routes stake to a whitelisted validator set with weights, distributes rewards through weighted_rewards_receivers, and supports a circuit-breaker pause and burn-to-unstake-instantly for the protocol.
Before you start
You need:- An IXO account funded with
uixofor staking and fees on the network you target — see Networks and endpoints. - An offline signer — see the SDK README.
- Awareness that governance changes (params, whitelisted validators, reward receivers, pause) require
cosmos.gov.v1.MsgSubmitProposalwrapping the relevantMsgUpdate*message — they are not callable directly by users.
Stake uixo for stuixo
target_weight. The minted stuixo amount reflects the current nav (net asset value) of the staked pool.
Unstake stuixo for uixo
uixo is returned after the chain unbonding period.
Governance-controlled operations
The following messages cannot be broadcast by ordinary users — they must be wrapped in acosmos.gov.v1.MsgSubmitProposal with the liquidstake module’s authority as the signer.
cosmos.gov.v1.MsgSubmitProposal (see the Cosmos SDK gov module documentation).
Burn-to-unstake (admin)
MsgBurn removes stuixo from circulation without queuing an unbonding — used by the protocol to reconcile the supply.
Verify the result
Query staked balances andstuixo supply through the gRPC gateway API and ixo.liquidstake.v1beta1 endpoints. Underlying delegations and unbonding entries are visible through the standard cosmos.staking.v1beta1 queries.
Troubleshooting
no whitelisted validators
no whitelisted validators
MsgLiquidStake fails when the whitelist is empty. Wait for a governance proposal to populate whitelisted_validators before staking.module paused
module paused
When
MsgSetModulePaused is true, all user-initiated stake/unstake messages are rejected. Check params via the gov query.invalid denom
invalid denom
MsgLiquidStake.amount.denom must equal the chain bond_denom (typically uixo). MsgLiquidUnstake.amount.denom must equal liquid_bond_denom (typically stuixo).invalid governance authority
invalid governance authority
Next steps
IXO MultiClient SDK
Module-level features and types.
Liquid staking proto
Source of truth for liquid staking messages.
Manage bonds
Use
stuixo as a reserve token in bonds.Cosmos gov module
Submit governance proposals for
liquidstake updates.