Transactions Overview
A transaction is any action you send to the protocol. canoLiq accepts messages for four kinds of work: liquid staking (deposit/redeem), CPLQ operations (transfer, stake, claim), governance (propose, vote), and treasury management (spend, approve). Each message type is a distinct, explicitly supported action — there is no general-purpose scripting.
Every transaction pays a small flat fee (default 10,000 uCNPY per message type) and is
validated before it touches state. New to the protocol? See
How It Works for the bigger picture first.
Transaction Categories
Phase 1 — Liquid Staking
| Message | Description |
|---|---|
MessageCanoliqDeposit | Deposits CNPY, mints cCNPY |
MessageCanoliqRedeem | Burns cCNPY, queues redemption |
MessageCanoliqClaimRedemption | Claims matured CNPY redemption |
MessageCPLQTransfer | Transfers liquid CPLQ |
MessageCPLQClaimVested | Unlocks vested CPLQ |
Phase 2 — Governance & Treasury
| Message | Description |
|---|---|
MessageCPLQStake | Locks CPLQ for governance weight |
MessageCPLQUnstake | Queues CPLQ unstaking |
MessageCPLQClaimUnstake | Claims matured CPLQ unstake |
MessageCPLQProposalCreate | Opens a governance proposal |
MessageCPLQVote | Votes on a proposal |
MessageBuybackExecute | Executes a passed buyback proposal |
MessageDAOTreasurySpend | Executes a passed treasury spend |
MessageMultisigApprove | Approves an above-threshold spend |
Standard
| Message | Description |
|---|---|
MessageSend | Standard CNPY transfer (accepted as drop-in compatibility) |
Transaction Lifecycle
Each transaction goes through:
- CheckTx — Stateless validation (fee check, address validation, authorized signers)
- DeliverTx — Stateful execution (read state, apply logic, write state)
- EndBlock (if applicable) — Reward sweep, proposal tally, spend execution