agon-cmt-v5 message for one channel. The payee, or a delegated authorized_settler named in the message, submits it with settle_individual.
What the message represents
The signed message does not say “charge 25 more.” It says: “this channel is now authorized up to cumulative amountX.”
The program compares that new cumulative amount to the channel’s current settled_cumulative and settles only the difference. That is why the payee only needs to hold the newest valid message — everything older is superseded.
See Commitments for the cumulative model in depth.
What the program verifies
Whensettle_individual runs, the program checks:
- The Ed25519 instruction is present and self-contained.
- The signer matches the channel’s current
authorized_signer. - The signed
message_domainmatches the deployment. - The message’s payer, payee, and token match the passed participant accounts and channel.
- The submitter is either the payee owner or the optional
authorized_settler. - The new cumulative amount is strictly greater than the existing
settled_cumulative. - The payer has enough total balance, counting channel-specific locked balance first and shared participant balance second.
What changes on-chain
If the checks pass, the program:- Advances
channel.settled_cumulative. - Consumes any needed
locked_balance. - Debits the payer’s shared balance for any remaining amount.
- Credits the payee.
- Emits an
IndividualSettledevent.
Example
When to use this path
Choose direct settlement when:- One payer and one payee interact repeatedly.
- You want the smallest possible protocol surface.
- You do not yet need bundle or cooperative compression.
- You want an always-available fallback regardless of cooperation state.

