set_protocol_fees
Updates protocol fee configuration for mint flows.
Handler narrative
- Load the GLAM state or program account required by the instruction and verify the signer.
- Apply mint lifecycle, token-account, ACL, or policy changes after verifying the required authority.
Required conditions
- The submitted accounts must match the declared account list, signer requirements, writable requirements, fixed program addresses, and account relationships shown below.
- The GLAM state account is the source of truth for owner, enabled integrations, delegate permissions, policies, assets, borrowable assets, timelock settings, mint linkage, and pricing records.
- Mint actions must satisfy the linked GLAM state, Token-2022 mint configuration, mint policy, and any request queue or escrow state involved in the flow.
- Configuration changes must pass owner or authorized-manager checks and, when the state or mint timelock is active, must follow the propose/apply timing model instead of taking effect immediately.
Accounts
| Account | Role | Description |
|---|---|---|
| glam_state | writable | State account owned by the GLAM Protocol program; it records vault configuration, policies, and pricing records. |
| glam_mint | read-only | Token-2022 mint associated with the GLAM mint or tokenized vault. |
| signer | signer, writable | Calling authority. It must be the owner or a delegate with the explicit permission required by this instruction. |
| glam_config | read-only | Global GLAM configuration account for fee and asset/oracle metadata. |
| glam_protocol_program | read-only | GLAM Protocol program account used for authorization or CPI. |
Arguments
| Argument | Type | Notes |
|---|---|---|
| base_fee_bps | u16 | Protocol base fee in basis points. |
| flow_fee_bps | u16 | Protocol flow fee in basis points for subscription, redemption, or similar movement flows. |
Policy & permissions
- No external integration enablement is required beyond the program-level functionality involved in this instruction.
- Only the owner is expected. Delegates do not receive this capability by being added; it must be granted explicitly if supported.
TypeScript SDK usage
await glamClient.fees.setProtocolFees(
1,
2000,
);Cross-instruction constraints
- No additional cross-instruction constraint is documented beyond account initialization, authority checks, and policy validation.