What the protocol guarantees
On-chain, Agon guarantees:- Balances live in protocol state, not in an operator database.
- Only allowlisted tokens can be used for settlement.
- Signed settlement messages are checked against the deployment
message_domain, which is derived in-program from a fixed Agon tag, the program ID, and the chain ID. - Channels and participants are checked against canonical PDAs, even when they arrive through
remaining_accounts. - Settlement only moves cumulative state forward — any message that does not increase
settled_cumulativeis rejected. - Withdrawals, channel unlocks, and signer rotations follow configured timelocks.
- Self-channels are explicitly rejected to prevent using settlement to bypass unlock timing.
What still depends on the relationship
Agon does not try to remove every real-world tradeoff between participants. For example:- One payee may require enough locked funds to make signed value effectively guaranteed; another may accept partial lockup or periodic settlement.
- One integration may settle every few seconds; another may settle in larger batches.
- One team may run settlement directly; another may use an operator through
authorized_settler.
What “trust” means in Agon
In most Agon integrations, trust means one or more of:- how much unsettled usage a payee is willing to tolerate
- how much locked balance a payer is willing to dedicate to a specific channel
- how much the parties rely on off-chain monitoring, retries, and operator tooling
Operators and delegated submission
Agon supports optional operator layers throughauthorized_settler. A delegated operator can:
- relay settlements
- batch and schedule submissions
- retry and monitor
- handle invoicing
- apply compliance checks
authorized_settler is additive, not exclusive — the payee can always bypass the operator and settle directly. See Authorized settler for the full semantics.
Authorities and upgrades
Two administrative roles exist in V4, each with a two-step handoff:| Role | Controls | Handoff |
|---|---|---|
| Config authority | Fee recipient, fee basis points, registration fee, pending authority | update_config → accept_config_authority |
| Registry authority | Adding new allowlisted tokens, pending registry authority | update_registry_authority → accept_registry_authority |
- change
message_domain - change
chain_id - drain vault balances
- bypass withdrawal, unlock, or signer timelocks
- modify participant or channel state outside the normal instruction surface
Summary
Agon is a public settlement and clearing protocol for repeated machine-payment relationships. It gives those relationships room to choose their own point on the locked-capital / settlement-frequency / operational-trust spectrum, while holding a small set of properties constant: balances stay in protocol state, messages are bound to the deployment, settlement only moves forward, and channel maintenance is timelocked.See also
- Security properties — the specific on-chain checks
- Design principles
- Trust and collateral
- Authorized settler

