Skip to main content

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​

MessageDescription
MessageCanoliqDepositDeposits CNLQ, mints cCNPY
MessageCanoliqRedeemBurns cCNPY, queues redemption
MessageCanoliqClaimRedemptionClaims matured CNLQ redemption
MessageCPLQTransferTransfers liquid CPLQ
MessageCPLQClaimVestedUnlocks vested CPLQ

Phase 2 — Governance & Treasury​

MessageDescription
MessageCPLQStakeLocks CPLQ for governance weight
MessageCPLQUnstakeQueues CPLQ unstaking
MessageCPLQClaimUnstakeClaims matured CPLQ unstake
MessageCPLQProposalCreateOpens a governance proposal
MessageCPLQVoteVotes on a proposal
MessageBuybackExecuteExecutes a passed buyback proposal
MessageDAOTreasurySpendExecutes a passed treasury spend
MessageMultisigApproveApproves an above-threshold spend

Standard​

MessageDescription
MessageSendStandard CNLQ transfer (accepted as drop-in compatibility)

Transaction Lifecycle​

Each transaction goes through:

  1. CheckTx — Stateless validation (fee check, address validation, authorized signers)
  2. DeliverTx — Stateful execution (read state, apply logic, write state)
  3. EndBlock (if applicable) — Reward sweep, proposal tally, spend execution