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 CNPY, mints cCNPY
MessageCanoliqRedeemBurns cCNPY, queues redemption
MessageCanoliqClaimRedemptionClaims matured CNPY 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 CNPY 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