What a commitment represents
A commitment does not say “charge 25 more.” It says: “this channel is now authorized up to cumulative amount X.” Concretely, anagon-cmt-v5 message carries:
- the deployment-scoped
message_domain - the
payer_idandpayee_id - the
token_id - a new
committed_amount(cumulative, not incremental) - an optional
authorized_settler - an Ed25519 signature by the channel’s current
authorized_signer
settled_cumulative and moves only that difference. Everything about the commitment that is not the delta is bookkeeping.
For the exact byte layout, see Message formats.
Why cumulative
Cumulative commitments have two practical consequences:- The payee only needs the newest valid message. Intermediate commitments are superseded automatically. A payee can throw away older commitments as soon as a newer one arrives.
- Replay is monotonic and trivial to check. The program rejects any commitment whose
committed_amountis less than or equal to the currentsettled_cumulative.
How commitments are issued
authorized_signer. The signature is verified by Solana’s Ed25519 program as a prefix instruction on the settlement transaction.
See Your first payment for working code that builds and settles a commitment end-to-end.
Off-chain lifecycle
Commitments live off-chain until settlement. Most integrations keep:- the latest signed
agon-cmt-v5per channel - local usage or metering state
- policy for when to sign the next commitment
What commitments do not encode
Commitments are deliberately minimal. They do not encode:- per-call pricing or metadata
- fees to operators or coordinators
- dispute or escape conditions
- payee-side policy
Commitments inside cooperative rounds
In a cooperative round, each channel’s cumulative target is still expressed the same way, but the target is carried inside a sharedagon-round-v4 message signed by the participant roster instead of a standalone agon-cmt-v5.
The channel semantics are identical: the program advances settled_cumulative to the signed target and applies the resulting balance changes. The difference is that cooperative rounds let many channels advance together and net against each other before participant balances are touched.
See Clearing rounds for the full cooperative flow.

