Skip to main content
This page lists every instruction the deployed Agon program exposes. Most integrations only need a small subset — see Minimum useful subset at the bottom.

Bootstrap and admin

initialize
instruction
Creates GlobalConfig, fixes the deployment chain ID, derives the immutable message domain, and sets the initial config authority.
update_config
instruction
Updates mutable configuration (fee_recipient, fee_bps, registration_fee_lamports) and can nominate a pending config authority.
accept_config_authority
instruction
Completes the two-step config authority handoff. Must be signed by the nominated pending authority.
initialize_token_registry
instruction
Creates the singleton TokenRegistry account after bootstrap.
register_token
instruction
Adds one allowlisted settlement token to the registry and creates its vault token account PDA.
update_registry_authority
instruction
Nominates a pending registry authority.
accept_registry_authority
instruction
Completes the two-step registry authority handoff.

Participants

initialize_participant
instruction
Registers one wallet as one permanent participant. Assigns a monotonically increasing participant_id and initializes the participant’s inbound channel policy.
update_inbound_channel_policy
instruction
Sets whether inbound channels are permissionless, consent-based, or disabled for this participant.

Funding and withdrawals

deposit
instruction
Moves tokens from the caller’s token account into the protocol vault and credits the participant’s available balance for that token.
deposit_for
instruction
Lets one funder credit several participants for the same token in a single transaction (up to 16 recipients per call).
request_withdrawal
instruction
Starts a timelocked withdrawal for one token. Records the destination token account and moves the requested amount from available_balance to withdrawing_balance.
cancel_withdrawal
instruction
Cancels a pending withdrawal and returns the amount to available_balance.
execute_withdrawal_timelocked
instruction
Executes a pending withdrawal after the timelock has elapsed. Transfers the net amount to the destination and the protocol fee to the fee recipient.

Channels

create_channel
instruction
Creates one permanent one-way payment channel from payer to payee for one token, respecting the payee’s inbound channel policy.
lock_channel_funds
instruction
Moves part of the payer’s available_balance into this channel’s locked_balance. Locked funds cannot be withdrawn, cannot fund other channels, and can only be consumed by settlement against this channel.
request_unlock_channel_funds
instruction
Starts a timelocked request to return some locked channel balance to the payer’s available_balance.
execute_unlock_channel_funds
instruction
Completes the channel unlock after the timelock has elapsed.
request_update_channel_authorized_signer
instruction
Starts a timelocked rotation of the channel’s authorized_signer (the key that signs agon-cmt-v5 commitments).
execute_update_channel_authorized_signer
instruction
Completes the authorized_signer rotation after the timelock has elapsed.

Settlement

settle_individual
instruction
Settles one agon-cmt-v5 message against one channel. The caller must be the payee or the authorized_settler named in the message. See Direct settlement.
settle_commitment_bundle
instruction
Settles many agon-cmt-v5 messages in one transaction for one payee. Each commitment must be for the same token and payee. See Bundle settlement.
settle_clearing_round
instruction
Settles one agon-round-v4 message signed by the roster of participants, advancing many channels in one transaction and applying only the net residual balance changes. See Clearing rounds.

Minimum useful subset

If you are building a provider, gateway, or agent client, the smallest useful subset is usually:
  1. initialize_participant
  2. deposit
  3. create_channel
  4. optionally lock_channel_funds
  5. settle_individual or settle_commitment_bundle
If you are building a cooperative settlement coordinator, add settle_clearing_round.

See also